在Windows中使用Java读取UTF-8格式的xml -file会出现“IOException:2字节UTF-8序列的无效字节2”。 -错误

时间:2011-04-04 13:03:15

标签: java xml parsing utf-8

我的Java程序有问题。我如何读取具有“UTF-8”编码的xml -file。程序在Kubuntu中正常工作,但我在Windows中不起作用。两个操作系统都正确地编写了xml -file,但解析在Windows中提供了异常错误。

String XMLFile = "ÄÄKKÖSET.xml"
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File (XMLFile));

这是我需要解析的xml -file:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<deck created="04/04/2011">
  <title>ääkköset</title>
  <code>ÄÄKKÖSET</code>
  <description>ääkköset</description>
  <author>ääkköset</author>
  <cards nextCardID="1">
    <card color="#1364F9" id="0">
      <question>ÄÄKKÖSET</question>
      <answer>ÄÄKKÖSET</answer>
    </card>
  </cards>
</deck>

如何在Windows中使用Java读取xml -file而不会得到“IOException:2字节UTF-8序列的无效字节2”。 -error?

提前致谢!

1 个答案:

答案 0 :(得分:5)

  

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

您的XML文档尚未保存为UTF-8,解析器检测到这一点(因为并非所有字节序列都是合法的UTF-8)并引发错误。

解决方案是将文件保存为UTF-8。将文档声明为UTF-8是不够的 - 数据编码的字节必须与此声明匹配。默认情况下,Windows上的许多文本编辑器默认将数据保存为ANSI。