中文亂碼問題:
1)原因:資料庫的編碼與讀取時的編碼不一致;jsp頁面的顯示儲存編碼與讀取到的編碼不一致;資料庫的編碼不統一,尤其是資料庫的server
2)解決方法:
<1>連線mysql資料庫的驅動url改為:jdbc:mysql://localhost:3306/lj?useunicode=true&characterencoding=utf-8
<2>mysql資料庫編碼設為同一的utf-8:
set names 'utf8';
set character_set_filesystem='utf8';
show variables like 'character_set_%';
<3>jsp檔案的編碼設為utf-8:
<%@page pageencoding="utf-8"%>
<4>html檔案內容的編碼設為utf-8:
<5>所有的檔案儲存時使用utf-8編碼格式儲存
產生亂碼的原理及解決辦法:
1)產生亂碼是由於在某個環節的兩端編碼方式不一致或者終端(瀏覽器等)
不支援;另外也可能是tomcat伺服器不穩定的問題,如果是tomcat伺服器產生的原因,則需要到tomcat伺服器安裝目錄的bin資料夾下修改配置
2)解決辦法:
@ 從頁面接受的資料使用編碼進行重新編譯,(要注意gbk與utf8把中文當作幾個位元組來看),如接受到資料後,在取出資料之前,需設定編碼request.setcharacterencoding(「utf-8」),在得到輸出流out之前也要設定response.setcharacterencoding(「utf-8」)
@ 向資料庫中儲存資料之前,先確保資料都使用了同一的編碼(至少在插入資料的時候),表、原始檔都設定一下,全部使用同一的編碼如utf-8,以mysql為例:[create database *** character set charset_name
][set names 'utf-8'],然後檢視是否所有的字符集都是同一種,不是則單獨設定(方法見上文)。建表也許設定編碼create table *** (
) engine=innodb auto_increment=198 default charset=utf8 row_format=redundant; 接下來執行sql指令碼就行了。
@ 從資料庫中取出資料後也要重新編碼
latin1
binary
資料庫中文亂碼問題
問題出在了當前的 cmd 客戶端視窗,因為當前的 cmd 客戶端輸入採用 gbk 編碼,而資料庫的編碼格式為 utf 8,編碼不一致導致了亂碼產生。而當前 cmd 客戶端的編碼格式無法修改,所以只能修改 connection client results 的編碼集來告知伺服器端當前插入的資料採用 g...
資料庫中文亂碼問題(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...