<?xml version="1.0" encoding="UTF-16"?>
<note>
<from>Jani</from>
<to>ALOK</to>
<message>AshuTosh</message>
</note>
我有XML解析器,它只支持UTF-8编码,否则会产生SAX解析器异常。如何将UTF-16转换为UTF-8?
答案 0 :(得分:5)
在这种情况下,它不是您正在使用的XML解析器,请参阅section 2.2 of the xml specification:
所有XML处理器必须接受Unicode
的UTF-8和UTF-16编码
Java xml解析器通常接收包含在InputSource对象中的输入。这可以使用Reader
参数构造,该参数对给定的字符集进行字符解码。
InputStream in = ...
InputSource is = new InputSource(new InputStreamReader(in, "utf-16"));
对于“utf-16”charset,流应以字节顺序标记开头,如果不是这种情况则使用“utf-16le”或“utf-16be”。