XMLStarlet — скандинавские символы UTF-8

Использование XMLStarlet (Windows) для редактирования RSS-канала, но есть несколько проблем с норвежскими символами «ÆØÅ».

Я использую пример, найденный на этом сайте ( https://stackoverflow.com/a/14397390/3168446 )

Это мой файл feed.xml. (Notepad++ говорит, что он закодирован в UTF-8)

<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>My RSS Feed</title>
    <description>This is my RSS Feed</description>
  </channel>
</rss>

Я не использую следующий пример, поскольку он предназначен для сценария Linux, но моя длинная командная строка ниже делает то же самое.

#!/bin/sh

TITLE="Test title ÆØÅ"
LINK="http://www.example.com"
DATE="`Sat, 26 Jul 2014 01:14:30 +0200`"

xmlstarlet ed -L   -a "//channel" -t elem -n item -v ""  \
     -s "//item[1]" -t elem -n title -v "$TITLE" \
     -s "//item[1]" -t elem -n link -v "$LINK" \
     -s "//item[1]" -t elem -n pubDate -v "$DATE" \
     -d "//item[position()>10]"  feed.xml ; 

Командная строка Windows (что я использую):

xml.exe ed -L -a "//channel" -t elem -n item -v "" -s "//item[1]" -t elem -n title -v "Test title ÆØÅ" -s "//item[1]" -t elem -n link -v "http://www.example.com" -s "//item[1]" -t elem -n pubDate -v "Sat, 26 Jul 2014 01:14:30 +0200" -d "//item[position()>10]" feed.xml

'ÆØÅ' вызывает у меня проблемы, когда я добавляю второй элемент, содержащий 'ÆØÅ', ну, на самом деле первый элемент вызывает у меня проблемы, но не выдает сообщение об ошибке, пока не будет добавлен второй элемент:

feed.xml:8.23: Input is not proper UTF-8, indicate encoding !
Bytes: 0xC6 0xD8 0xC5 0x3C: Bytes: 0xC6 0xD8 0xC5 0x3C

    <title>Test title ãÏ┼</title>

У кого-нибудь есть советы? Я предполагаю, что это проблема с кодировкой, но я не понимаю, почему, потому что файл feed.xml имеет кодировку UTF-8, а в ленте установлена ​​кодировка utf-8.


person Deathglider1    schedule 27.07.2014    source источник
comment
Проблема в том, что аргументы командной строки не кодируются как UTF-8, я изучаю исправление здесь   -  person npostavs    schedule 01.08.2014
comment
Прикинул, что-то в этом роде. Я использую обходной путь ниже, пока не будет найдено решение, но я нахожу немного странным, что сборка cygwin работает, поскольку я все еще запускаю ее из командной строки Windows, а не из терминала cygwin.   -  person Deathglider1    schedule 02.08.2014
comment
Версия 1.6.1+ должна обрабатывать это корректно.   -  person npostavs    schedule 10.08.2014
comment
Фантастика! Я подтвердил это и изменил ответ ниже.   -  person Deathglider1    schedule 10.08.2014


Ответы (1)


Я могу подтвердить, что эта проблема решена в сборке XMLStarlet версии 1.6.1+ win32!

person Deathglider1    schedule 28.07.2014