#查看mysql數據庫的字符集.mysql
mysql> show variables like "%character%"; +--------------------------+-----------------------------+ | 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 | /data/mysql/share/charsets/ | +--------------------------+-----------------------------+ 8 rows in set (0.01 sec)
#客戶端查看時,客戶端的字符集.sql
mysql> set character_set_client=utf8; Query OK, 0 rows affected (0.00 sec)
#客戶端查詢時,數據庫返回給客戶使用的字符集.shell
mysql> set character_set_results=gbk; Query OK, 0 rows affected (0.00 sec)
#數據存儲時的鏈接器,使用gbk和utf都行,存儲數據時都會轉換爲utf8.數據庫
set character_set_connection=utf8;
若是客戶端插入時和取出時字符集不同就會亂碼?ide
#設置客戶端的字符集爲utf8.spa
mysql> set character_set_client=utf8; Query OK, 0 rows affected (0.00 sec)
#建立數據庫t5.server
mysql> create table t5 ( name char(20) ); Query OK, 0 rows affected (0.02 sec)
#插入使用的字符集utf8;it
mysql> insert into t5 values ("中國"); Query OK, 1 row affected (0.00 sec)
#查看時沒問題.io
mysql> select * from t5; +--------+ | name | +--------+ | 中國 | +--------+ 1 row in set (0.00 sec)
#取出時讓服務端返回給gbk的字符集.table
mysql> set character_set_results=gbk; Query OK, 0 rows affected (0.00 sec)
#設置服務端返回時gbk就亂碼了.
mysql> select * from t5; +------+ | name | +------+ | א¹| +------+ 1 row in set (0.02 sec)
注意:我使用的客戶端xshell連接,字符集爲utf8字符集.
#若是把客戶端/鏈接器/服務端都設置爲utf8確定不會亂碼.
mysql> set character_set_client=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_connection=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_results=utf8; Query OK, 0 rows affected (0.00 sec) mysql> select * from t5; +--------+ | name | +--------+ | 中國 | +--------+ 1 row in set (0.00 sec)
#使用names能夠直接將這三條都設置爲同一個字符集.
mysql> set names gbk; Query OK, 0 rows affected (0.00 sec)
#查看字符集發現clien/connection/results都變爲gbk.
mysql> show variables like "%character%"; +--------------------------+-----------------------------+ | Variable_name | Value | +--------------------------+-----------------------------+ | character_set_client | gbk | | character_set_connection | gbk | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | gbk | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /data/mysql/share/charsets/ | +--------------------------+-----------------------------+ 8 rows in set (0.00 sec)