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   我朋友的机器就可以 执行通过
这是为什么啊  

解决方案 »

  1.   

    如果在XML里面用到了中文,则最好采用下面的方法读取: 
    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);
      

  2.   

    这个问题我以前遇到过!http://hi.baidu.com/125990985/blog/item/11a242478214133486947328.html这个不错啊!
    看了就明白了啊。