netbeans 错误:字节“239”不是(7位)ASCII字符集的成员

42fyovps  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(133)

我想在netbeans中读取一个xml文件。我使用以下代码:

DocumentBuilderFactory dbf ; DocumentBuilder db; Document doc = null;
  File file = new File(xml_url);
  dbf = DocumentBuilderFactory.newInstance();
  db = dbf.newDocumentBuilder();
  doc = db.parse(file);

然后它会给出这个错误:Byte "239" is not a member of the (7-bit) ASCII character set.
xml标头为:

<?xml version="1.0" encoding="us-ascii"?>

我该怎么解决这个问题?谢谢。

h7appiyu

h7appiyu1#

您的XML文件在XML头中声称是ASCII,但实际上不是,因为它显然包含非ASCII字节。
修复程序(按优先顺序):
1.您应该找到生成XML文件的任何人,让他们生成一个新的正确的XML文件。
1.字节239或0xEF十六进制,实际上是(冗余的)UTF-8字节顺序标记(BOM)0xEF 0xBB 0xBF的第一个字节。我强烈怀疑某些软件错误地将其添加到XML文件的开头。例如,记事本就是如此。
如果是的话,删除字节顺序标记,它是文件的前三个字节,就在<?xml之前。如果你的编辑器没有显示它(例如,我认为记事本没有,还有Netbeans might also have problems),找另一个会显示的。
仅使用不支持UTF-8 BOM的编辑器打开并重新保存文件可能就足够了。
1.另一种解决方法是将<?xml version="1.0" encoding="us-ascii"?>替换为<?xml version="1.0" encoding="UTF-8"?>。只有在我对BOM的假设是正确的情况下,这种方法才有效。

k10s72fa

k10s72fa2#

我本想在Christoffer的帖子下发表评论,但stackoverflow要求50点声望,而我没有。我使用的是macOS Big Sur。附带的vi无法识别字节239,而皮科可以。

相关问题