java 代码如下SAXReader reader = new SAXReader();
Document document = reader.read(new File("students.xml"));xml 文件 如下
<?xml version="1.0" encoding="UTF-8"?>
<student>
<name>张三</name>
<age>19</age>
<name>123</name>
<age>20</age>
</student>这样就会出错
Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence.如果把 张三 改成 英文 就可以通过 我的项目也时 utf-8 我朋友的机器就可以 执行通过
这是为什么啊
Document document = reader.read(new File("students.xml"));xml 文件 如下
<?xml version="1.0" encoding="UTF-8"?>
<student>
<name>张三</name>
<age>19</age>
<name>123</name>
<age>20</age>
</student>这样就会出错
Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence.如果把 张三 改成 英文 就可以通过 我的项目也时 utf-8 我朋友的机器就可以 执行通过
这是为什么啊
org.dom4j.io.SAXReader reader = new org.dom4j.io.SAXReader();
reader.read(File f)//这里的文件如果编码没有指定的话会报 “ org.xml.sax.SAXParseException: 缺少文件根组件" 的错误
解决办法,按文件保存的类型读取文件,UTF-8兼容所有保存类型
InputStream ifile = new FileInputStream("c:/test.xml");
InputStreamReader ir = new InputStreamReader(ifile, "UTF-8");
// File ir = new File("c:/test.xml"); //这样读会报错,如果该文件不是utf-8类型的
SAXReader reader = new SAXReader();
Document doc = reader.read(ir);
看了就明白了啊。