【问题标题】:Producing ISO-8859-1-encoded text output from a UTF-8-encoded XML source从 UTF-8 编码的 XML 源生成 ISO-8859-1 编码的文本输出
【发布时间】:2014-04-26 00:46:51
【问题描述】:

我在使用 XSLT(使用 Oxygen 运行转换)从 UTF-8 编码的 XML 源生成 ISO-8859-1 编码的文本输出时遇到了困难。

例如,当源包含短划线时,Oxygen 会抛出错误,“Output character not available in this encoding (decimal 8211)”。

破折号是 ISO-8859-1 字符集中可用的字符,处理器知道源是用 UTF-8 编码的(来自其 XML 声明)。我的 XSLT 包含

<xsl:output method="text" encoding="ISO-8859-1"/>

那么为什么不简单地将 UTF-8 编码的字符替换为 ISO-8859-1 编码的字符呢?我可以理解为什么 Unicode 中可用但 ISO-8859-1 中不可用的字符可能会导致问题,但为什么两者都可用?

有直接的解决方案吗?

感谢您的任何建议。

【问题讨论】:

  • 您使用哪个版本的 XSLT?您也可以显示您的 XML 输入吗?

标签: xml xslt encoding utf-8 iso-8859-1


【解决方案1】:

据我所知,ISO-8859-1 不包含 Unicode 字符 8211/U2013,只有 Windows-1252 包含。所以 oXygen 或其 XSLT 处理器对这个错误是正确的。

【讨论】:

  • 是的,你是对的 - 看起来我被误导了。当我添加替换功能时: 转换成功完成并用连字符替换了破折号.
猜你喜欢
  • 2011-09-23
  • 2010-12-27
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
  • 2012-05-27
  • 2012-09-04
  • 1970-01-01
相关资源
最近更新 更多