0
点赞
收藏
分享

微信扫一扫

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


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"

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

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"))))

举报

相关推荐

0 条评论