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" ?> 但是却以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"))))
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值