中文亂碼總結之JSP亂碼

2022-03-11 04:52:30 字數 1060 閱讀 6830

jsp頁面的漢字顯示為亂碼,而英文和阿拉伯數字正常。

漢字編碼時用的字符集 與解碼用的字符集不一致;所有的字符集都相容ascii碼,所以英文數字不存在亂碼。

編號名稱

單字長度

能否對漢字編碼

ascii

美國資訊交換標準**

7bit

否iso-8859-1(latin1)

西文編碼

8bit

否gbk(ansi)

漢字內碼擴充套件規範

英文單位元組,中文雙位元組

能utf-8

萬國碼

1~4個位元組

能注: gbk(「國標擴充套件」的拼音首字母)是對gb2312的擴充套件

1. 通過page指令的pageencoding屬性,指明jsp原始檔使用哪個字符集編碼。

2.在未告知的情況下,瀏覽器自動選擇的解碼字符集與網頁的編碼不一致:

l  瀏覽器使用者手動糾正:檢視->字元編碼-> utf-8或gbk

l  在jsp中使用response.setcontenttype(「text/html; charset=utf-8」)明示

3. 使用者通過html表單提交了中文,但是tomcat、mysql的預設字符集是iso-8859-1。

l  對應post表單,通過request. setcharacterencoding(charset)明確告訴tomcat用什麼字符集;

對於get表單,修改tomcat/conf/server.xml中http connector的屬性

usebodyencodingforuri=」true」  或者  uriencoding=」utf-8」

l  將mysql的字符集,設定為utf-8或gbk

結論:預設靠不住,最好明確指定utf-8gbk

jsp中文亂碼

一 page 指定contenttype屬性時,做如下指定 page contenttype text html charset gb 2312 charset中首字母c要大寫。二 page 指定contenttype屬性時,做如下指定 page contenttype text html char...

jsp中文亂碼

以 get 方式提交資料時 讀取使用者名稱和密碼 string name request.getparameter name 對請求資料進行字元編碼 name new string name.getbytes iso 8859 1 utf 8 以 post 方式提交資料時 設定讀取請求資訊的字元編碼...

jsp中文亂碼2

1.單獨的html頁面指定編碼為 2.單獨的jsp頁面設定編碼為 page pageencoding utf 8 3.request請求過來的引數設定編碼為 表單提交亂碼問題 request.setcharacterencoding utf 8 4.如果使用了獲取response物件的printwr...