字節流亂碼與字符流亂碼


本文總結自:https://blog.csdn.net/mingliangniwo/article/details/44178491

前提:數據展示過程:數據寫入response容器,瀏覽器解析response容器

 

字節流亂碼問題

如果用response.getOutputStream.write("中國".getBytes("utf-8")); 寫入流(把‘中國’以utf-8的格式存入response容器),瀏覽器上會展示亂碼。

原因:瀏覽器默認使用碼表gb2312來展示數據,因此會出現亂碼。

解決方法:可以通過設置Content-type來指定碼表:

response.setHeader("Content-type", "text/html;charset=utf-8");

 

 

字符流亂碼問題

如果用response.getWriter.write("中國");  寫入流,出現亂碼。

原因:當將"中國"寫入到Response中,Response容器默認使用iso8859-1碼表存儲"中國",那么存儲的會是兩個亂碼

如果設置:response.setHeader("Content-type", "text/html;charset=utf-8");會怎樣?

依舊出現亂碼。。

原因是試圖將iso8859-1字節還原成UTF-8字節是不可行的。

因此我們需要在源頭上,即裝入容器是就采用utf-8

response.setCharacterEncoding("utf-8");

 


免責聲明!

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



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