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

java 中StringBuilder转换String 出现中文乱码的问题
本帖最后由 liujianjun1536500976 于 2014-11-13 11:32:27 编辑
这是在网上看到的一个方法,代码如下:测试的时候出现了中文乱码。
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();
}

------解决思路----------------------
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"));
------解决思路----------------------
关键看那个流从哪边来的
举个例子
比如你这个流是从磁盘上某个txt文件读取的
1、如果这个文件以ANSI的编码格式保存的,那么
new InputStreamReader(is,"GBK")
2、如果这个文件以UTF-8的形式保存的,那么
new InputStreamReader(is,"UTF-8")
如果是……
------解决思路----------------------
这应该使你读的时候出现乱码的,你的文件时什么编码的,就用什么编码区读