原方法:
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格式,不會導致亂碼;