XMLStarlet - UTF-8北欧字符

时间:2014-07-27 18:24:59

标签: xml utf-8 rss xmlstarlet

使用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并且feed中的编码设置为utf-8。

1 个答案:

答案 0 :(得分:0)

我可以确认在XMLStarlet版本1.6.1+ win32 build中解决了这个问题!