關於Java web開發中的中文亂碼問題

前段時間用Java web技術做了一個小小的微博系統,在做的過程中發現了許多中文亂碼問題,一下是避免亂碼問題的幾點建議:

1、在整個系統開發過程中,從前端到後臺必須採用統一的中文編碼方式,如gb2312,UTF-8等,否則會出現意想不到的系統錯誤。

(1)、在JSP頁面中設置編碼方式,<% @ page contentType = " text/html;charset=gb2312 "   %>

或者在server.xml配置文件來實現。
< Connector port ="8080"      maxHttpHeaderSize ="8192"
               maxThreads ="150"  minSpareThreads ="25"  maxSpareThreads ="75"
               enableLookups ="false"  redirectPort ="8443"  acceptCount ="100"
               connectionTimeout ="20000"  disableUploadTimeout ="true"   URIEncoding ="gb2312" />

(2)、在servlet中設置編碼方式:request.setCharacterEncoding("gb2312");

response.setCharacterEncoding("gb2312");

 

(3)、在創建數據庫時選擇中文編碼方式gb2312或utf-8。


2、在提交表單或頁面跳轉時,如果通過URL傳值,則只能傳遞英文或數字,否則在後臺你將無法獲取你期望的值。如果採用這種傳值方法:

         解決方法:首先將得到的值要再用iso-8859-1編碼得到原文後,再進行用utf-8(看具體頁面的charset是什麼utf-8或gbk)進行解碼即可。new String(strCn.getBytes(“ISO-8859-1”),“UTF-8”)。

3、數據庫亂碼問題,如果採用MySQL數據庫,那麼他的默認編碼是拉丁文,第一種解決方法是打開數據庫的配置文件my.ini,將編碼方式改爲utf8,或gb2312;第二種方法是通過JDBC直接鏈接數據庫的時候,配置的代碼如下:jdbc:mysql://localhost:3306/workshopdb? useUnicode=true&characterEncoding=GBK,這樣將會避免中文亂碼問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章