網頁

2005年11月6日 星期日

MySQL 5.0.15 亂碼

剛剛用 Portupgrade -aCcv 升級系統,沒想到 Blog 上的字又變成亂碼了。之前才把 MySQL 的資料從 latin1 -> UTF8 ,本來想說可能是自動升級的時候沒有弄好,重裝了還是一樣爛。機八鴨叫我用

mysql> SHOW VARIABLES LIKE 'character_set_%';
mysql> SHOW VARIABLES LIKE 'collation_%';


來看看發生什麼事了,不過看起來:

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
7 rows in set (0.01 sec)

似乎檔案還是對的,於是 google 了一下,發現其中一招解法是在 wordpress 的 wp-db.php line 56 左右:

// mysql_query("SET NAMES 'utf8';");
// mysql_query("SET CHARACTER SET UTF8;");
$this->select($dbname);

加上 mark 的那兩行,另一招的話則把 my.cnf 丟到 database 的目錄裡面去並且在 [mysqld] 的地方加入:

init_connect = 'SET NAMES UTF8;'

就 ok 了。