0

我有一个 xsl 文件,它将一个 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 格式(无论如何,在notepad ++所说的期间)。

我在这里遗漏了什么吗,是否有另一种方法来设置结果:s 编码而不是语法 encoding="utf-8"?

4

1 回答 1

0

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

于 2013-06-17T20:39:47.883 回答