中文顯示問題一直是困擾我們的乙個難題,不信你上google搜尋一下,這類的問題和解答可以說是鋪天蓋地,好多**甚至將其提出來作為專題來討論,管中窺豹,可見一斑。
開始也曾為這個問題頭疼,上網查閱大量的資料和解決方法,終於找到了一種既簡單又好用的辦法,以jsp+mysql儲存為例,簡單介紹一下。
當頁面使用gbk(或者gb2312)編碼後,頁面中的中文都可以正常顯示()。但是涉及到資料庫的訪問時,您常常會看到令人頭疼的亂碼。輸出sql執行的字串,例如:insert into table values('1','旺財','20','男'); 這時候可以看到顯示的都是中文,但是當你開啟資料庫檢視記錄的時候看到還是亂碼,暈!為什麼?如果這時候你從mysql控制台命令列下輸入上面的語句執行時,再檢視資料庫記錄,咦!沒有問題呀,執行同樣的語句,為什麼得到不一樣的結果呢?看來jdbc是難脫其咎了。
簡而言之解決方法:
連線資料庫時:jdbc:mysql://localhost/test?user=root&password=&useunicode=true&characterencoding=iso-8859-1",指明編碼為iso-8859-1,我看了一下mysql的相關檔案,它預設的編碼就是iso-8859-1,但是在這裡不指明的話還是有問題,中文仍舊不能正常顯示(到底為什麼其實我也不是很清楚)。這樣在往資料庫中存放的時候就正常了。
從資料庫中讀取資料時,如果用rs.getstring("name")的話,亂碼又出來了,這還是乙個編碼轉換的問題,下面給乙個轉換函式:
<%
/********************************************
函式名:togb
作 用:將iso8859字符集轉換為gb2312字符集
解決資料庫中文顯示問題
參 數:iso ----要轉換的字串
返回值: gb ----轉換後的字串
********************************************/
%>
<%! public string togb(string iso)
catch (exception e)
} return gb;
}%>
資料庫中文亂碼問題(mysql)
好多朋友都遇到過資料庫中訪問中文亂碼的情況,要解決有很多方法,這裡給我我個人遇到的情況!首先要做到的是將資料庫與程式統一編碼 都用utf 8,或都用gbk,gb2312.下面給出的是都用utf 8的例子 1.建資料庫時要把資料庫的型別設定為utf 8的,2.連線資料庫時要宣告採用utf 8字符集 c...
mysql資料庫中文亂碼問題
mysql資料庫存在著編碼問題,主要體現在資料庫裡漢字會出現亂碼,web頁面漢字顯示不正常。歸結起來只有乙個原因 會出現編碼的地方存在編碼不一致。web開發中 mysql編碼主要會出現在五個地方 1.mysql安裝的預設編碼 latin1 在mysql.ini mysql安裝根目錄下 中設定。mys...
MySQL資料庫插入中文失敗問題
問題描述 建立資料庫test字符集為utf8,表user字符集為utf8。插入中文字元時出現如下錯誤 error 1366 hy000 incorrect string value xce xe2 xd9 xbb for column user name at row 1 解決方法 方法一 在mys...