我想在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);
Run Code Online (Sandbox Code Playgroud)
然后它给出了这个错误: Byte "239" is not a member of the (7-bit) ASCII character set.
xml标题是:
<?xml version="1.0" encoding="us-ascii"?>
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?谢谢.
您的XML文件在XML标头中声称是ASCII,但实际上并非如此,因为它显然包含非ASCII字节.
按优先顺序修复:
你应该去任何/生成XML文件的人,并让它/他们生成一个新的正确的XML文件.
字节239或0xEF十六进制,实际上是(冗余)UTF-8字节顺序标记(BOM)的第一个字节0xEF 0xBB 0xBF.我强烈怀疑某些软件错误地将其添加到XML文件的开头.例如,记事本.
如果是这样,删除字节顺序标记,它就是文件的前三个字节,就在之前<?xml.如果您的编辑器没有显示它(例如我认为记事本没有,并且Netbeans可能也有问题),请找另一个.
只使用不支持UTF-8 BOM的编辑器打开和重新保存文件就足够了.
修复它的另一种方法是替换<?xml version="1.0" encoding="us-ascii"?>为<?xml version="1.0" encoding="UTF-8"?>.这只有在我对BOM的假设是正确的情况下才有效.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2004 次  |  
        
|   最近记录:  |