mysql字符集說明
一、mysql中涉及的幾個字符集
Ø character-set-server/default-character-set:伺服器字符集,預設情況下所採用的。
Ø character-set-database:資料庫字符集。
Ø character-set-table:資料庫表字符集。
優先順序依次增加。所以一般情況下只需要設定character-set-server,而在建立資料庫和表時不特別指定字符集,這樣統一採用character-set-server字符集。
Ø character-set-client:客戶端的字符集。客戶端預設字符集。當客戶端向伺服器傳送請求時,請求以該字符集進行編碼。
Ø character-set-results:結果字符集。伺服器向客戶端返回結果或者資訊時,結果以該字符集進行編碼。
Ø character_set_connection 連線字符集。
在客戶端,如果沒有定義character-set-results,則採用character-set-client字符集作為預設的字符集。所以只需要設定character-set-client字符集。要處理中文,則可以將character-set-server和character-set-client均設定為GB2312,如果要同時處理多國語言,則設定為UTF8。
二、解決亂碼問題
通常亂碼問題是因為字符集不統一而造成的。通常字元character-set-server、character-set-client、character_set_connection需要統一
三、修改預設字符集
1、 最簡單的修改方法,就是修改mysql的my.ini檔案中的字符集鍵值,
如 default-character-set = utf8
character_set_server = utf8
修改完後,重啟mysql的服務,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';檢視,發現資料庫編碼均已改成utf8
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
2、 還有一種修改字符集的方法,就是使用mysql的命令
mysql> SET character_set_client = utf8 ;
init_connect='SET NAMES utf8'