有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaXSLT转换释放了特殊字符

我正在进行XSLT转换,但编码有问题,因为转换后我丢失了克罗地亚特殊字符。 我正在使用javax。xml。使改变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" />
...

我怎样才能解决这个问题


共 (1) 个答案

  1. # 1 楼答案

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