XSL转换给我错误的编码

时间:2013-06-17 16:01:03

标签: xml xslt xml-parsing

我有一个xsl文件,它将xml文件转换为另一个xml文件,具有不同的xml格式。 xsl文件以:

开头
        ?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:msxsl="urn:schemas-microsoft-com:xslt"

然后输出以:

开头
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

将要转换的所有元素的其余部分,例如:

        <xsl:element name="tns:corporateName" >
          <xsl:value-of select="@CorpOrgname"/>
        </xsl:element>

一切看起来都不错,除了生成的xml文件在第1行中有这个标记:

 <?xml version="1.0" encoding="Windows-1252"?

我无法理解这种编码的来源。当我在本地调试文件时,结果是utf-8,但是当这个应用程序使用它时不会。

反正有没有强迫它将它设置为utf-8?因为这是一种需求。接收系统是一些Unix系统。

我有一个原始文件的示例。那个我将改造,那是utf-8格式(在记事本++中说的无论如何)。

我在这里遗漏了什么,是否有另一种设置结果的方法:s编码比语法encoding =“utf-8”?

1 个答案:

答案 0 :(得分:0)

了解转型是如何运作的。也许输出被发送到DOM树,然后由DOM序列化器而不是XSLT序列化器序列化 - 在这种情况下,样式表中请求的编码将被忽略。