今天做了一个XML文件的解析时,打开XML文件发现文件没有编码格式说明,就是不知道文件内容的编码格式,如下: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(fileName); //在这一步报错:Invalid byte 1 of 1-byte UTF-8 sequence
然后我将此文件另存为UTF-8格式又导入一次,就没有任何问题了。 请教下,除了将文件另存为UTF-8格式以外,有没有其他更好的方法可以在解析此XML文件时不报这种错误 请说明一下具体的解决办法,谢谢.
然后我将此文件另存为UTF-8格式又导入一次,就没有任何问题了。 请教下,除了将文件另存为UTF-8格式以外,有没有其他更好的方法可以在解析此XML文件时不报这种错误 请说明一下具体的解决办法,谢谢.
一般java工作流中都要求 是无bom的 因为前面多了一个byte 没办法解析
根据Invalid byte 1 of 1-byte UTF-8 sequence 判断xml格式为UTF-8 bom格式的
建议在本机上用utf-8无 bom和有bom格式的XML文件做测试
dom4j 或是其他的解析方法。时间长了我有点忘了
DocumentBulider documentBuilder = factory.newDocumentBuilder();
Document doc = documentBuilder.parse(new InputSource(new InputSteamReader(new FileInputStream(fileName),"UTF-8")));这样就可以将文件中按照UTF-8的字符流格式转化成Document对象。