UTF-16编码

时间:2012-02-23 11:50:06

标签: java xml utf-16

<?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?

1 个答案:

答案 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”。