Java 在xslt中使用不同的编码

Java 在xslt中使用不同的编码,java,xml,xslt,Java,Xml,Xslt,对xml文档和xslt使用不同的编码会有什么影响 xslt样式表的输出编码为UTF-8,输入xml未声明编码,将使用字符串生成,在xslt中: <xsl:variable name="doc" select="document('file.xml')"/> 该文件是iso-8859-1 使用不同的编码会影响输出吗?XSLT操作的树是抽象对象,通常(但不一定)是通过解析XML文档创建的。这些抽象树中的字符来自ISO10646和Unicode的字符库;在构建树的任何表示之前,用于输

对xml文档和xslt使用不同的编码会有什么影响

xslt样式表的输出编码为UTF-8,输入xml未声明编码,将使用字符串生成,在xslt中:

<xsl:variable name="doc" select="document('file.xml')"/>

该文件是iso-8859-1


使用不同的编码会影响输出吗?

XSLT操作的树是抽象对象,通常(但不一定)是通过解析XML文档创建的。这些抽象树中的字符来自ISO10646和Unicode的字符库;在构建树的任何表示之前,用于输入XML的任何编码变体都由XML解析器进行分级


因此,您的问题的答案是:如果使用的XML解析器知道输入编码,则不同编码对输入的影响为零。如果XML解析器不知道并接受编码,其结果将使XSLT引擎根本无法读取输入。

猜测:根据使用的转换器实现,您将得到不同的结果。如果未声明编码,我怀疑将使用操作系统编码(在不同的计算机上会有所不同)。简单的解决方法:在utf8中执行所有操作:)