Mysql中文亂碼問題

2021-09-07 03:59:31 字數 1253 閱讀 1767

中文資料問題本質是字符集問題(客戶端和伺服器的編碼格式不一致導致)

計算器只識別二進位制:需要二進位制與字元的對應關係(字符集)

案例說明:

用cmd視窗連線mysql,插入一條中文資料

結果可以看到報了錯,原因:'\xd5\xc5\xd4\xbd\'意思是'張越'兩字對應的是四個位元組(字符集為:gbk)

而伺服器預設的資料是utf8格式,乙個漢字對應三個位元組,讀取三個位元組轉換成漢字(失敗)

從截圖中可以看出客戶端字符集格式為:gbk

伺服器,我們可以先檢視伺服器總共支援多少中字符集

--檢視所有字符集--

show character set;

總共支援39中字符集,其中就有gbk和utf8

檢視伺服器預設的對外處理的字符集

-- 檢視伺服器預設的對外處理的字符集--

show variables like 'character_set%';

結果可以看出,伺服器確實是以utf8的格式對客戶端(gbk格式)的資料進行解碼的

由於cmd視窗的字符集只能是gbk,無法改變客戶端,所以只能改變伺服器的字符集

設定伺服器對客戶端的字符集的認識

--設定伺服器字符集--

此時客戶端和伺服器的字符集編碼一致(gbk)

再次插入中文的效果是成功的

mysql 中文亂碼問題

表現一 插入中文的時候顯示data too long 二 插入成功後,search出來的結果顯示亂碼.解決方法如下 1 只要是gb2312,gbk,utf8等支援多位元組編碼的字符集都可以儲存漢字,當然,gb2312中的漢字數量遠少於gbk,而gb2312,gbk等都可在utf8下編碼 2 用命令s...

mysql中文亂碼問題

環境 windows xp mysql notepad mysql語言設定沒有問題,因為直接使用insert語句往表中插入資料沒有問題,但把insert寫入到檔案中,通過source sql的形式插入,就會出現中文亂碼。這時候使用linux環境編寫.sql檔案,在拿到windows環境執行,沒有問題...

MySql中文亂碼問題

亂碼問題是經常遇到的問題,也是比較頭疼的問題,網上資料也非常多,最近在專案實施時也出現過這個問題,在此記錄下解決方式。先描述下我遇到的問題,開發環境為eclipse,編碼格式為utf 8,web伺服器為tomcat,編碼格式為utf 8,資料庫採用mysql,編碼格式如下 資料庫中表與字段的編碼全部...