Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Xslt转换释放了特殊字符_Java_Xml_Xslt - Fatal编程技术网

Java Xslt转换释放了特殊字符

Java Xslt转换释放了特殊字符,java,xml,xslt,Java,Xml,Xslt,我正在进行XSLT转换,但编码有问题,因为转换后我丢失了克罗地亚特殊字符。 我正在使用javax.xml.transform.Transformer,并将编码设置如下: transformer.setOutputProperty( OutputKeys.ENCODING, "UTF-8"); 我们使用的是WebSphere8,定义了以下JVM参数 -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 此外,转换的定义如下: <?x

我正在进行XSLT转换,但编码有问题,因为转换后我丢失了克罗地亚特殊字符。 我正在使用javax.xml.transform.Transformer,并将编码设置如下:

transformer.setOutputProperty( OutputKeys.ENCODING, "UTF-8");
我们使用的是WebSphere8,定义了以下JVM参数

-Dclient.encoding.override=UTF-8
-Dfile.encoding=UTF-8
此外,转换的定义如下:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:msg="http://b25/ics/ed/CC305A" xmlns:ct="http://b25/ics/complexTypes">
<xsl:output encoding="UTF-8" indent="yes" method="xml" />
...

...

如何解决这个问题?

丢失(或错误编码)发生在数据进入XSLT引擎之前,或者在数据离开XSLT引擎之后。(字符编码问题几乎总是出现在软件产品之间的边界上,当数据供应商认为它在一种编码中,而接收方认为它在另一种编码中时)。因此,解决问题的第一步是找出哪种情况。准确地找出输入中的内容非常容易:使用类似于
的东西,它将告诉您提供给转换的整数Unicode代码点。要准确地找出输出中的内容,您需要在十六进制编辑器中查看XSLT引擎的序列化输出。

您“丢失它们”是什么意思?它们是从输出中完全省略,以数字实体的形式编码出来,还是。。?你能发布一个小的输入和输出片段来说明这个问题吗?字符没有被省略,而是被错误地转换了,例如:“Ivicačšć”被转换成了“Ivica???”。可以肯定的是,输入文档是UTF-8吗?是否通过加载文档并指定UTF-8(或其他编码)来创建源?我想知道JVM是否使用系统默认编码。