MalformedByteSequenceException:1字节UTF-8序列的无效字节1.当使用希伯来语字符时

La *_*bla 4 java xml encoding character-encoding

我正在尝试解析包含希伯来语字符的XML文件.我知道该文件是正确的,因为如果我输出文件(来自不同的软件)没有希伯来字符,它解析就好了.

我尝试了很多东西,但我总是遇到这个错误

MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
Run Code Online (Sandbox Code Playgroud)

我最近的尝试是使用它来打开它FileInputStream并指定编码

DocumentBuilder db = dbf.newDocumentBuilder();
document = db.parse(new FileInputStream(new File(xmlFileName)), "Cp1252");
Run Code Online (Sandbox Code Playgroud)

(Cp1252是一个在不同的应用程序中为我工作的编码)但我得到了相同的结果.

尝试使用ByteArray也没有用.

有什么建议?

jta*_*orn 6

如果您知道文件的正确编码并且它不是"utf-8",那么您可以将其添加到xml标头:

<?xml version="1.0" encoding="[correct encoding here]" ?>
Run Code Online (Sandbox Code Playgroud)

或者将其解析为读者:

db.parse(new InputStreamReader(new FileInputStream(new File(xmlFileName)), "[correct encoding here]"));
Run Code Online (Sandbox Code Playgroud)