由于 XML 中的拉丁文本,我收到以下错误。
Invalid byte 2 of 2-byte UTF-8 sequence: XML saved as String varible
我的 XML 被写入字符串变量(我不导入文件)。 我尝试将编码设置为“UTF-8”,但我可能做错了。
你能帮忙吗?
我的代码:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
InputStream inputStream = new ByteArrayInputStream(GET_XML.getBytes());
Document doc = dBuilder.parse(inputStream);
doc.getDocumentElement().normalize();
最佳答案
您看到此错误是因为您在没有正确 XML 声明的情况下提供包含 ISO-8859-1(又名 Latin-1)字符的 xml:
<?xml version='1.0' encoding='ISO-8859-1' standalone='no' ?>
您有两种选择,或者通过使用上述声明获取 xml 来纠正它。
或强制UTF-8
在字节转换期间。
new ByteArrayInputStream(GET_XML.getBytes(StandardCharsets.UTF_8));
关于java - 2 字节 UTF-8 序列的字节 2 无效 : XML saved as String varible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51135153/