java 中StringBuilder转换String 出现中文乱码的问题

人在旅途我渐行渐远 2014-11-13 11:12:03
这是在网上看到的一个方法,代码如下:测试的时候出现了中文乱码。
public String convertStreamToString(InputStream is) {

BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "/n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
...全文
4512 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
百里马 2014-11-13
  • 打赏
  • 举报
回复
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 改成:BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
  • 打赏
  • 举报
回复
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 改成:BufferedReader reader = new BufferedReader(new InputStreamReader(is),"UTF-8");
  • 打赏
  • 举报
回复
引用 6 楼 shixitong 的回复:
关键看那个流从哪边来的 举个例子 比如你这个流是从磁盘上某个txt文件读取的 1、如果这个文件以ANSI的编码格式保存的,那么 new InputStreamReader(is,"GBK") 2、如果这个文件以UTF-8的形式保存的,那么 new InputStreamReader(is,"UTF-8") 如果是……
嗯 谢谢,我知道哪里出问题了。
jackson_fighting 2014-11-13
  • 打赏
  • 举报
回复
引用 6 楼 shixitong 的回复:
关键看那个流从哪边来的 举个例子 比如你这个流是从磁盘上某个txt文件读取的 1、如果这个文件以ANSI的编码格式保存的,那么 new InputStreamReader(is,"GBK") 2、如果这个文件以UTF-8的形式保存的,那么 new InputStreamReader(is,"UTF-8") 如果是……
关键看那个流从哪边来的!
  • 打赏
  • 举报
回复
引用 5 楼 shijing266 的回复:
你原来存进去是不是utf-8格式的,如果不是,转出来肯定也有问题,试试GBK的
嗯 我上午也是按照BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));这个调试的,之所以我没有出来预期的效果是因为字段类型不一致甩出来的msg,如果类型正确的话,正常数据是正确。
S117 2014-11-13
  • 打赏
  • 举报
回复
这应该使你读的时候出现乱码的,你的文件时什么编码的,就用什么编码区读
shixitong 2014-11-13
  • 打赏
  • 举报
回复
关键看那个流从哪边来的 举个例子 比如你这个流是从磁盘上某个txt文件读取的 1、如果这个文件以ANSI的编码格式保存的,那么 new InputStreamReader(is,"GBK") 2、如果这个文件以UTF-8的形式保存的,那么 new InputStreamReader(is,"UTF-8") 如果是……
  • 打赏
  • 举报
回复
你原来存进去是不是utf-8格式的,如果不是,转出来肯定也有问题,试试GBK的
  • 打赏
  • 举报
回复
引用 2 楼 u012345283 的回复:
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 改成:BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
不行的。我这is是一个json串
  • 打赏
  • 举报
回复
引用 1 楼 shijing266 的回复:
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 改成:BufferedReader reader = new BufferedReader(new InputStreamReader(is),"UTF-8");
试了 不管事的

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧