`
流浪鱼
  • 浏览: 1636572 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Inval

    博客分类:
  • java
 
阅读更多

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte 错误是我在使用java的api解析xml文件时报的错误

 

网上搜了下都说是xml文件中声明的编码与xml文件本身保存时的编码不一致。比如你的声明是

<?xml version= "1.0" encoding= "UTF-8" ?> 但是却以ANSI格式编码保存, 解决办法就是重新设置xml文件保存时的编码与声明的一致.

这样的修改使用传入参数为文件路径的情况下是可以的代码为

DocumentBuilder builder = fcty.newDocumentBuilder();
document = builder.parse(file);//解析成功,file为文件路径

 但是下面情况却任然报错

parser.parse(new ByteArrayInputStream(userType.getUserMetadataXML().getBytes()));
//此行的意思是把一个字符串转换为字节流,如果该字符串内容放到一个文件中解析,本身不报错,但是这样访问就报上面异常

 解决的方法是转换时指定字节流为utf-8

parser.parse(new ByteArrayInputStream(userType.getUserMetadataXML().getBytes(Charset.forName("UTF-8"))))
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics