UTF-16编码

Alo*_*ary 4 java xml utf-16

<?xml version="1.0" encoding="UTF-16"?>
    <note>
        <from>Jani</from>
        <to>ALOK</to>
        <message>AshuTosh</message>
    </note>
Run Code Online (Sandbox Code Playgroud)

我有XML解析器,它只支持UTF-8编码,否则它会提供SAX解析器异常.如何将UTF-16转换为UTF-8?

Jör*_*ann 5

在这种情况下,它不是您正在使用的XML解析器,请参阅xml规范的2.2节:

所有XML处理器必须接受Unicode的UTF-8和UTF-16编码

Java xml解析器通常接收包含在InputSource对象中的输入.这可以用一个Reader参数来构造,该参数对给定的字符集进行字符解码.

InputStream in = ...
InputSource is = new InputSource(new InputStreamReader(in, "utf-16"));
Run Code Online (Sandbox Code Playgroud)

对于"utf-16" 字符集,流应该以字节顺序标记开始,如果不是这种情况,则使用"utf-16le"或"utf-16be".