Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java UTF-16编码 贾尼 阿洛克 阿什图什_Java_Xml_Utf 16 - Fatal编程技术网

Java UTF-16编码 贾尼 阿洛克 阿什图什

Java UTF-16编码 贾尼 阿洛克 阿什图什,java,xml,utf-16,Java,Xml,Utf 16,我有一个XML解析器,它只支持UTF-8编码,否则它会导致SAX解析器异常。如何将UTF-16转换为UTF-8?在这种情况下,您使用的不是XML解析器,请参阅: 所有XML处理器都必须接受Unicode的UTF-8和UTF-16编码 Java xml解析器通常接收包装在对象中的输入。这可以使用Reader参数构造,该参数对给定字符集执行字符解码 <?xml version="1.0" encoding="UTF-16"?> <note> <f

我有一个XML解析器,它只支持UTF-8编码,否则它会导致SAX解析器异常。如何将UTF-16转换为UTF-8?

在这种情况下,您使用的不是XML解析器,请参阅:

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

Java xml解析器通常接收包装在对象中的输入。这可以使用
Reader
参数构造,该参数对给定字符集执行字符解码

<?xml version="1.0" encoding="UTF-16"?>
    <note>
        <from>Jani</from>
        <to>ALOK</to>
        <message>AshuTosh</message>
    </note>

对于“utf-16”,流应该以字节顺序标记开始,如果不是这样,请使用“utf-16le”或“utf-16be”。

解析器100%支持utf-18。请提供解析器的名称、版本和错误消息以提供帮助。@Aarondigula感谢您表现出兴趣,我已经通过Jörn Horstmann提供的答案找到了问题的解决方案………无论如何,解析器的名称是com.sun.xml.fastinfoset.dom.DOMDocumentParserThat解析器肯定支持UTF-16。请100%确保您的文档是正确的UTF-16,并且使用了正确的API。@Maksud_Tiger:请返回社区并接受答案。:/解析器应读取XML标题(其中包含编码)并使用上述规则正确处理文档。在读取XML时,您永远不应该自己定义编码,因为如果有人使用不同的编码向您发送内容,这将导致中断。
InputStream in = ...
InputSource is = new InputSource(new InputStreamReader(in, "utf-16"));