期间如何处理(R)符号我有一个UTF-8 XML(作为字符串传递),其包含以下行:XML XSLT转换
<LongName>SomeName®</LongName>
。
它应该在XSLT转换后转换为另一个UTF-8 XML。问题是唯一有®符号,它转化为两个符号:®
下面的代码:
public String transform (String inputXML) throws TransformerException {
TransformerFactory factory = TransformerFactory.newInstance();
OutputStream os = new ByteArrayOutputStream();
InputStream transformationFile = getClass().getResourceAsStream(TRANSFORMER_PATH);
Transformer transformer = factory.newTransformer(new StreamSource(transformationFile));
InputStream is = new ByteArrayInputStream(inputXML.getBytes(Charset.forName("UTF-8")));
Source input = new StreamSource(is);
transformer.transform(input, new StreamResult(os));
return os.toString();
}
所以,问题是 - 如何正确变换®到®从UTF-8 UTF- 8 XML?取而代之的
InputStream is = new ByteArrayInputStream(inputXML.getBytes(Charset.forName("UTF-8")));
Source input = new StreamSource(is);
它看起来像你没有阅读源为UTF8。 – SLaks
我该怎么办才能修复它? – XpressOneUp
您正在读取inputXML中存储的码点序列的UTF-8编码的字节。不要这样做:从字符串中创建一个流,并在转换处抛出它。 – laune