Java(包括JSP)原始檔中很可能包含有中文,而Java和JSP原始檔的儲存方式是基於位元組流的,如果Java和JSP編譯成class檔案過程中,使用的編碼方式與原始檔的編碼不一致,就會出現亂碼。另外在HTML頁面中,也是由於頁面的編碼與瀏覽器解釋所用的編碼不一致,導致出現亂碼
方法/步驟
解決HTML頁面的中文問題:
為了使HTML頁面很好的支援中文,在每個HTML頁面的標籤內部增加
解決jsp頁面中的中文問題:
pageEncoding是jsp檔案本身的編碼contentType的charset是指伺服器傳送給客戶端時的內容編碼
解決頁面資料傳輸的中文問題:
最佳方法是採用編碼過濾器來解決,設定一個過濾器,吧所有的資料都進行轉碼
HTtp(post)請求中的中文亂碼
在Servlet頁面中 新增
HTTP(get)請求中的中文亂碼問題:
如果是get,需要獲取請求的字串,然後把整個字串進行轉換,同時需要知道原編碼,下例假設為 ISO-8859-1
Mysql資料庫中的中文問題:
解決Mysql資料庫中文問題主要在JDBC驅動的URL上新增:
Mysql資料庫在windows系統中,dos中顯示錶中資料為亂碼,但是資料輸入與輸出均正常:
這是因為windows系統中,預設的編碼是中文,而寫入的時候是UTF-8,
此時只需要設定 set names gb2312 即可
注意事項
Tomcat的預設編碼是iso-8859-1,如果沒有指定的話,就會使用預設的編碼