【问题标题】:XMLStarlet - UTF-8 Nordic charactersXMLStarlet - UTF-8 北欧字符
【发布时间】:2014-07-27 18:24:58
【问题描述】:

使用 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。

【问题讨论】:

  • 问题是命令行参数未编码为 UTF-8,我正在研究修复here
  • 认为是这样的。我正在使用下面的解决方法,直到找到解决方案,但我发现 cygwin 构建工作有点奇怪,因为我仍然从 Windows 命令行而不是从 cygwin 终端运行它。
  • 版本 1.6.1+ 应该能正确处理这个问题。
  • 太棒了!我已经确认并更改了下面的答案。

标签: xml utf-8 rss xmlstarlet


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多