- 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 即可。