標籤:tables mysql 服務端 用戶端 中文
一次建表時顯示中文正常,建表後查詢卻是亂碼。
mysql> show tables;+----------------+| Tables_in_test |+----------------+| ????? || table1 |+----------------+2 rows in set (0.00 sec)
一般出現這種情況是因為用戶端和服務端的編碼類別型不一致導致。
查看一些用戶端和服務端的編碼類別型:
mysql> show variables like "%char%"; +--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | latin1 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+8 rows in set (0.00 sec)mysql>
從中可以看出服務端是utf8,而用戶端是latin,臨時設定一下用戶端編碼:
SET character_set_client=‘utf8‘; SET character_set_connection=‘utf8‘; SET character_set_results=‘utf8‘;
再次查看一下表是否亂碼:
mysql> show tables; +-----------------+| Tables_in_test |+-----------------+| 學生資訊表 || table1 |+-----------------+2 rows in set (0.00 sec)
果然是編碼不一致導致,解決:
1.如果是資料庫編碼不一致導致亂碼,則需要修改資料庫的編碼類別型:
show create database test;alter database test character set utf8 COLLATE utf8_general_ci;
2.如果是用戶端問題,則需編輯設定檔,添加如下一行:
[client]default-character-set=utf8
本文出自 “小東哥” 部落格,謝絕轉載!
mysql查詢時亂碼解決辦法