MySQL學習筆記一---字元亂碼問題和字元集精髓

來源:互聯網
上載者:User

標籤:

 

  前言:  一般來說,出現中文亂碼,都是用戶端和服務端字元集不匹配導致的原因。  (預設未指定字元集建立的資料庫表,都是latinl字元集, 強烈建議使用utf8字元集)   保證不出現亂碼的思想:保證用戶端、服務端、資料庫、表字元集統一  坑:有的時候,cmd或者linux系統字元集問題,其實資料庫是正確的,只是我們執行命令在終端看到的是亂  碼而已,這時需要設定linux系統字元集  1、查看liunx系統字元集:cat /etc/sysconfig/i18n  2、vim /etc/sysconfig/i18n   一、查看是什麼字元集  1、查尋資料庫是什麼字元集  show create database django\G (django 是資料庫名稱)       2、查尋表是什麼字元集  show create table auth_group\G (auth_group 是表名稱)    ENGINE = InnoDB 該表資料庫引擎是InnoDB  DEFULT CHARSET=utf8 該表字元集是utf8  COLLATE utf8_general_ci 校準規則   3、查看所有字元集和對應的校準規則  show character set;     二、解決方案:  1、插入資料的時候,先設定用戶端插入字元集和資料庫建表相同的字元集  eg:如果資料庫表字元集是latinl,那麼插入資料的時候也要是latinl  方法:set names latinl  insert into student value(‘飛東‘)       2、將SQL語句放入檔案中,使用source來執行這個檔案,插入資料,則不會出現亂碼,原理是和1一樣的,    只是放在檔案中執行而已  方法:將下面兩個語句放入一個建立檔案中,如mysql.sql  set names Latinl  insert into student value(‘飛東‘)  執行這個檔案:source mysql.sql     3、從其他檔案匯入資料庫(避免匯入資料有中文亂碼的問題)  將資料編碼格式儲存為utf-8(UTF8不要匯入gbk,gbk不要匯入UTF8)  set names utf8; ALTERDATABASEDEFAULTCHARACTERSETCOLLATE utf8_general_ci;  修改資料庫的編碼格式  ALTERTABLEDEFAULTCHARACTERSETCOLLATE utf8_general_ci;     修改表的編碼格式  LOADLOCAL‘C:\\utf8.txt‘INTOTABLE tb_name;    從檔案中匯入資料庫   4、永久修改預設用戶端編碼格式(修改my.cnf設定檔,針對MySQL 5.5版本以上)       5、永久修改預設服務端編碼格式(修改my.cnf設定檔,針對MySQL 5.5版本以上)      修改完畢之後重啟mysqld服務:service mysqld restart    三、常用命令  1、查看預設編碼格式 show variables like "%char%";             character_set_client(用戶端)、character_set_connection(串連)、character_set_results(結果) 三者字元集是一致的

  2、修改資料庫的編碼格式

  ALTERDATABASEDEFAULTCHARACTERSETCOLLATE utf8_general_ci;  

  3、修改表的編碼格式

  ALTERTABLEDEFAULTCHARACTERSETCOLLATE utf8_general_ci;  

  4、通過ALTER 修改庫或者表的字元集,只是對之後插入的資料有效,原來已經存在的資料無法修改,如果需要修改原來帶有資料的字元集,只能通過把原來的資料匯出來,再插入到新的已經修改過字元集的表(資料庫)中。

 

 

 

 

 

  四、建議  1、中英文環境,linux設定系統字元集為utf8,資料庫服務端,用戶端,資料庫,表都是utf8字元集  2、無論是查尋還是插入,都先用set names utf8 先設定一下字元集  3、建議建資料庫語句:    4、建議表語句:  

 

 

MySQL學習筆記一---字元亂碼問題和字元集精髓

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.