解決中文亂碼

2021-05-23 18:37:08 字數 1277 閱讀 2124

一、web應用程式中編碼相關的部分

1.jsp編譯

指定檔案的儲存編碼,很明顯,該設定應該置於檔案的開頭,例如:

2.jsp輸出

指定檔案輸出到browser時使用的編碼,該設定也應該置於檔案的開頭,例如:

該設定與response.setcharacterencoding("gbk")等效

3.meta設定

指定網頁使用的編碼,該設定對靜態網頁尤其有作用。因為靜態網頁無法採取jsp設定,而且也無法執行response.setcharacterencoding()

例如:注意:

1).如果同時採用了jsp輸出和meta設定這兩種編碼指定方式,則jsp指定的優先。因為jsp指定的直接體現在response中。

2).apache有乙個設定可以給無編碼指定的網頁指定編碼,該指定等同於jsp的編碼指定方式,所以會覆蓋靜態網頁中的meta指定

4 .form 設定

當瀏覽器提交表單的時候,可以指定相應的編碼,流入:

一般不需要進行設定,瀏覽器會直接使用網頁的編碼。

二、web應用程式亂碼長生的原因

1.jsp頁面被編譯為class時,如果未指定字符集,預設使用iso8859-1的編碼格式,這樣中文會出現亂碼。

2.使用表單時,如果設定提交方式為post而沒有設定提交的編碼格式,則會以iso8859-1方式進行提交,而接受的jsp卻以utf-8的方式接受,這樣也會導致亂碼。

3.表單使用時如果設定提交方式為get而沒有設定提交的編碼格式,tomcat會以get的預設編碼方式iso8859-1對漢字進行編碼,編碼後追加到url,導致接受頁面得到的引數為亂碼。

三、解決方案

1.設定檔案本身的編碼格式

這樣可以在eclipse或myeclipse中進行設定。執行window->preferences->general->content type->jsp,如下圖所示:

(2)在jsp頁面上指定字符集。通常頁面字符集的設定如下:

3.資料庫

在jdbc運算元據庫時,在設定資料庫的url時加入編碼字符集:

string url="jdbc:mysql://localhost/digigulf?user=root&password=root&useunicode=true&characterencoding=utf-8";

4、在程式獲取頁面資料時使用如下**:

response.setcontenttype("text/html;charset=gb2312");

request.setcharacterencoding("gb2312");

解決中文亂碼

1.更改tomcat平台中的字元編碼 servlet.xml中的 中的乙個屬性 2.通過string中的亂碼解決方式來處理 核心句 byte bs name.getbytes iso8859 1 還原出原來 的位元組編碼 name new string bs,utf 8 3.request.setc...

Linux 中文亂碼解決

修改 linux 系統 ect profile 檔案 在最後麵加 export lc all zh cn.gb18030 修改 etc sysconfig i18n檔案 lang zh cn.gb18030 language zh cn.gb18030 zh cn.gb2312 zh cn supp...

gedit中文亂碼解決

fedora13中,gedit預設沒有gbk等等編碼的檢測,在開啟一些中文文件時會有亂碼,解決方法如下 在終端中命令 gconf editor 喚出gnome的配置工具 有auto detected這一項,雙擊編輯,在其中新增 gbk,gb2313,gb18030 三個value,點ok儲存。同時注...