从UTF-8编码的XML源生成ISO-8859-1编码的文本输出

时间:2014-03-19 16:00:10

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

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

例如,当源包含一个短划线时,Oxygen会抛出一个错误,“输出字符在此编码中不可用(十进制8211)”。

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

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

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

是否有直接的解决方案?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:2)

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