java - 2 字节 UTF-8 序列的字节 2 无效 : XML saved as String varible

标签 java xml encode

由于 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/

相关文章:

java - Spring RequestBody 可选验证

Java分隔符问题

java - 将自定义数据添加到 ListView 和 ArrayAdapter 项目

c# - XML 列表序列化

sql-server - 将 XML 转换成货币

java - JAXB 简单 XML 解析

windows - 如何在 Windows 中循环处理 FFMpeg?

java - 方法返回错误

.net - 使用 .NET 将图像转换为 WMF?

php - 无法从 PHP 文件中解码 JSON