将输出编码设置为utf-8时,为什么输出文件中的iso-8859-1字符未转换为utf-8?
我有一个iso-8859-1编码的xml输入文件,并声明了编码.我想用utf-8输出它.我的理解是在xslt文件中设置输出编码应该管理字符转换.
我的理解错了吗?如果没有,为什么以下简单的测试用例在utf-8声明的输出文件中输出iso-8859-1字符?
我的输入文件如下所示:
<?xml version="1.0" encoding="ISO-8859-1"?>
<data>ö</data>
Run Code Online (Sandbox Code Playgroud)
我的变换看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output encoding="UTF-8" />
<xsl:template match="/">
<result>
<xsl:value-of select="." />
</result>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
从命令行使用saxon9he,我的结果如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<result>ö</result>
Run Code Online (Sandbox Code Playgroud)
根据BabelPad,我的结果文件中的ö是0xF6,这是一个无效的utf-8字符.ö似乎没有受到转变的影响.
谢谢你的帮助!