我有一个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”?
答案 0 :(得分:0)
了解转型是如何运作的。也许输出被发送到DOM树,然后由DOM序列化器而不是XSLT序列化器序列化 - 在这种情况下,样式表中请求的编码将被忽略。