java编码超过2字节,编码问题之:java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence....

今天在编码的时候遇到如下问题

java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.

函数源码:

static InputStream String2InputStream(String str) throws Exception{

ByteArrayInputStream stream = new ByteArrayInputStream()

return stream;

}

实现的功能将一个xml字符串转换为Stream类型。

调用时的源码

String ExpXmlText ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +

"  elbert_app_dsc005" +

"  wangwang101112347" +

"  1236235618357" +

"  a2e82a649b38ad10790160ec40e282af" +

"  Yes" +

"  elb_aui_005" +

"  USER8B38B4C13EFE7276F75889E3123C4428" +

"  "+util.TimeHelp.getTimestamp_BeforeNDay(65)+" 00:00:00" +

"  "+util.TimeHelp.getTimestamp_BeforeNDay(7)+" 23:59:59" +

"  http://mall.alisoft.com/apps/subsc/subscDisplay!execute.jspa?appId=elbert_app_dsc005" +

"  " +

"" +

"";

调用

String2InputStream(ExpXmlText );

结果报:

java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.

经查时由于声明的ExpXmlText 是UTF-8编码的,而转换的时候使用默认的编码是gbk的

查明原因后,将原函数修订如下

static InputStream String2InputStream(String str) throws Exception{

ByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes("utf-8"));

return stream;

}

问题解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值