小编use*_*490的帖子

为什么xslt输出编码= utf-8不能转换iso-8859-1字符?

将输出编码设置为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字符.ö似乎没有受到转变的影响.

谢谢你的帮助!

xslt character-encoding

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

character-encoding ×1

xslt ×1