码迷,mamicode.com
首页 > 其他好文 > 详细

字符流接受utf-8乱码解决

时间:2020-06-26 12:30:03      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:tst   ade   line   append   readline   lin   read   app   buffered   

原方法:
BufferedReader reader = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String lines;
StringBuffer sb = new StringBuffer("");
while ((lines = reader.readLine()) != null) {
lines = new String(lines.getBytes(), "utf-8");
sb.append(lines);


在new InputStreamReader时默认用文件的编码格式(gbk)解析,若字符串中汉字个数为单数,此时最后一位汉字会因为少1个字节导致乱码;之后的 new String(lines.getBytes(), "utf-8")操作解析不出最后一位


解决方法:

BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
String lines;
StringBuffer sb = new StringBuffer("");
while ((lines = reader.readLine()) != null) {
lines = new String(lines.getBytes());
sb.append(lines);
}

读取字符流时直接使用utf-8,会直接接受并转化为bgk格式,不会导致乱码;

字符流接受utf-8乱码解决

标签:tst   ade   line   append   readline   lin   read   app   buffered   

原文地址:https://www.cnblogs.com/lcxz/p/13194258.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!