假设这个输入XML
<?xml version="1.0" encoding="UTF-16"?>
<test></test>
编写这些代码行:
StreamSource source = new StreamSource(new StringReader(/* the above XML*/));
StringWriter stringWriter = new StringWriter();
StreamResult streamResult = new StreamResult(stringWriter);
TransformerFactory.newInstance().newTransformer().transform(source, streamResult);
return stringWriter.getBuffer().toString();
输出这个XML:
<?xml version="1.0" encoding="UTF-8"?>
<test></test>
(声明的UTF-16编码转换为默认的UTF-8)
我知道我可以明确要求输出UTF-16
transformer.setoutputProperty(OutputKeys.ENCODING, "UTF-16");
解决方法:
要做到这一点,你必须使用比StreamSource更复杂的东西.例如,StAXSource
采用XMLStreamReader,它具有getCharacterEncodingScheme()
方法,告诉您输入文档使用了哪种编码 – 您可以将其设置为输出enocding.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。