1. 程式人生 > >JavaWeb中的亂碼碼問題解決,setHeader("Content-type",xxx),setCharacterEncoding()方法的區別

JavaWeb中的亂碼碼問題解決,setHeader("Content-type",xxx),setCharacterEncoding()方法的區別

1. response.setCharacterEncoding(“utf-8)

該方法設定的是向response寫入的字元的編碼,如

response.setCharacterEncoding("Content-type","text/html;charset=utf-8")
response.getWriter().write("你好,JavaWeb!");

上面程式碼表示向響應體中寫入的字元的編碼是utf-8
此時,瀏覽器中訪問該程式碼所在的頁面依然會出現亂碼,因為,response向瀏覽器響應後,瀏覽器並不知道”你好,JavaWeb!”是UTF-8的格式,因為我們的系統預設是GBK編碼,此時必然會出現亂碼,需要將瀏覽器的編碼手動設定成utf-8的格式才能正常的顯示中文.

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

response.setHeader("Content-type","text/html;charset=utf-8");
response.getWriter().write("你好啊,JavaWeb!");

以上通過向Response新增響應頭的方式,瀏覽器在收到該響應的時候,會自動的使用 utf-8 的編碼方式顯示,而且在呼叫setHeader(“Content-type”,”text/html;charset=utf-8”) 以後會自動執行setCharacterEncoding(“utf-8”)這樣就不會出現亂碼了。

tips:常見字元編碼:iso-8859-1(不支援中文)、gb2312、gbk、gb18030(系統預設編碼,中國的國標碼)、utf-8(萬國碼,支援全世界的編碼,所以我們使用這個)