Skip to content

Latest commit

 

History

History
24 lines (19 loc) · 1.57 KB

編碼.md

File metadata and controls

24 lines (19 loc) · 1.57 KB

編碼

查看 MySQL 數據庫編碼

  • SHOW VARIABLES LIKE 'char%';

編碼解釋

  • character_set_client: MySQL 使用該編碼來解讀客戶端發送過來的數據,例如該編碼為 utf8, 那麼如果客戶端發送過來的數據不是 utf8, 那麼就會出現亂碼。
  • character_set_results: MySQL 會把數據轉換成該編碼後,再發送給客戶端,例如該編碼為 utf8, 那麼如果客戶端不使用 utf8 來解讀,那麼就會出現亂碼。

控制台亂碼問題

  • 插入或修改時出現亂碼:
    • 這時因為 cmd 下默認使用 GBK, 而 character_set_client 不是 GBK 的原因。我們只須讓這兩個編碼相同即可。
    • 因為修改 cmd 的編碼不方便,所以我們去設置 character_set_client 為 GBK 即可。
  • 查詢出的數據為亂碼:
    • 這是因為 character_set_results 不是 GBK, 而 cmd 默認使用 GBK 的原因。我們只需讓這兩個編碼相同即可。
    • 因為修該 cmd 的編碼不方便,所以我們去設置 character_set_results 為 GBK 即可。
  • 設置變量的語句:
    • set character_set_client=gbk;
    • set character_set_results=gbk;

注意: 設置變量只對當前連接有效,當退出窗口後,再次登陸 MySQL, 還需要再次設置變量。為了依勞永逸,可以再 my.ini 中設置: 設置 default-character-set=gbk 即可。

指定默認編碼

我們再安裝 MySQL 時指定默認編碼為 UTF8, 所以我們在創建數據庫,創建表時,都無須再次指定編碼。為了一勞永逸,可以再 my.ini 中設置: 設置 character-set-server=utf8 即可。