2011年3月22日

phpMyAdmin 撈MySQL中文亂碼

由於MySQL預設語系為latin1,此時用phpMyAmin撈取中文資料時會變成亂碼

先確認MySQL的語系
mysql> show variables like 'char%';

+--------------------------+----------------------------------------+
| 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 | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+


檢查Table的語系
mysql> use db;
mysql> show full columns from table\G;

*************************** 1. row ***************************
Field: p_custom1
Type: varchar(32)
Collation: latin1_swedish_ci
Null: YES
Key:
Default: NULL
Extra:
Privileges: select,insert,update,references
Comment:
1 rows in set (0.00 sec)


解法
shell># vim /etc/my.cnf
[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
init_connect='SET NAMES utf8'

記得重新啟動MySQL

沒有留言:

張貼留言