2字节UTF-8序列的无效字节2

fly*_*ina 27 java xml encoding

我试图解析XML文件,<?version = 1.0, encoding = UTF-8> 但遇到了错误消息invalid byte 2 of 2-byte UTF-8 sequence.有谁知道导致这个问题的原因是什么?

Sta*_*Man 22

最常见的是由于喂食ISO-8859-x(Latin-x,如Latin-1),但解析器认为它正在进行UTF-8.某些Latin-1字符序列(带有重音符号或变音符号的两个连续字符)形成无效的内容UTF-8,特别是基于第一个字节,第二个字节具有意外的高位.

当一些进程XML使用Latin-1 转储出来时,这很容易发生,但要么忘记输出XML声明(在这种情况下,XML解析器必须默认为UTF-8,根据XML规范),或者声称UTF-8即使它不是.


Ign*_*ams 5

解析器设置为UTF-8,即使文件是以其他方式编码的,或者文件声明为使用UTF-8但实际上并非如此.


ato*_*ott 5

您可以尝试将 String.getBytes() 使用的默认字符编码更改为 utf-8。使用 VM 选项 -Dfile.encoding=utf-8。


Spe*_*pen 5

我有同样的问题。我的问题是我用jdom和FileWriter(xmlFile)创建了一个新的XML文件。FileWriter无法创建UTF-8文件。而是使用FileOutputStream(xmlFile)解决了它。