JSP向MYSQL讀寫中文亂碼問題解決方案

2021-04-12 13:21:48 字數 898 閱讀 5538

中文亂碼.這個是最頭疼的事情.我用的是資料庫連線池,在db.propertise裡面的url設定字符集是utf-8,在jsp頁面裡如果寫入中文到資料庫是亂碼,直接在資料庫裡寫入中文再讀出來也是亂碼,於是用new string(words.getbytes("iso-8859-1"),"gb2312");對從資料庫裡讀出來的中文轉碼,終於出來可愛的漢字了,但是寫入就是比較麻煩,,因為每個人的資料庫設定的字符集並不一樣.最後我在寫入中文的時候用了words.getbytes("iso-8859-1"),在web.xml裡的filter設定字符集為iso-8859-1

jsp亂碼問題解答

通常來說,當請求遞交到伺服器端-->伺服器端由servlet獲得param-->執行相應的process(包括對資料庫的操作)--->返回response顯示給使用者過程中 如果字符集不同會導致亂碼問題。

當 然,編碼衝突主要因iso8859等西歐字符集和gbk或big5以及其他一些亞洲字元編碼規則不同導致。但對於應用開發人員來說, 死摳編碼解碼規則沒有太大意義,相比較而言,熟悉掌握整個http request/response過程中經過哪些字元/位元組轉換才會對亂碼問題有更進一步的理解。以下是我結合實際問題並查閱相關文件後所總結的一些經 驗:

那麼為何有時候會出現亂碼問題呢?

e.g: 從乙個指定為gb2312編碼的頁面提交到伺服器端,而伺服器段直接呼叫request.getparameter()方法拿到字串s,那麼這個字串 直接返回到response一定會顯示為亂碼,因為原來的byte是gb2312的編碼,用iso8859-1解碼是一定會出亂碼的。把字串存入數 據庫和從資料庫中取出字串概念也是一樣,如果資料庫字符集是ascii那麼rs.getstring()拿到的字串也是按ascii解碼的,直接返回 到response為gb2312的頁面也會顯示亂碼.

解決方法通常有以下幾種:

Mysql中文亂碼問題(jsp)

mysql中文亂碼問題 windows上的 首先建表和jsp頁面都要用gb2312編碼,然後進入mysql的安裝目錄,找到my.ini檔案,找到如下幾行 mysql default character set gb2312,將她改為gb312即可,同時我們可以看出此檔案是mysql的配置檔案,包括可...

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 方式提交資料時 設定讀取請求資訊的字元編碼...