1. 程式人生 > >Servlet中文亂碼問題及其解決方法

Servlet中文亂碼問題及其解決方法

關於設定中文的亂碼問題
原因:response緩衝區的預設編碼是iso8859-1,此碼錶中沒有中文,可以通過response的setCharacterEncoding(String charset) 設定response的編碼

但我們發現客戶端還是不能正常顯示文字
原因:我們將response緩衝區的編碼設定成UTF-8,但瀏覽器的預設編碼是本地系統的編碼,因為我們都是中文系統,所以客戶端瀏覽器的預設編碼是GBK,我們可以手動修改瀏覽器的編碼是UTF-8。

我們還可以在程式碼中指定瀏覽器解析頁面的編碼方式,
通過response的setContentType(String type)方法指定頁面解析時的編碼是UTF-8

response.setContentType("text/html;charset=UTF-8");

如果寫了此程式碼則無需書寫setCharacterEncoding(String charset),因為伺服器會預設為我們呼叫


上面的程式碼不僅可以指定瀏覽器解析頁面時的編碼,同時也內含setCharacterEncoding的功能,所以在實際開發中只要編寫response.setContentType("text/html;charset=UTF-8");就可以解決頁面輸出中文亂碼問題。