資料庫中文亂碼問題

2021-09-01 08:57:46 字數 1179 閱讀 8745

中文亂碼問題:

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...