字符流接受utf-8亂碼解決


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM