剛稍微測了一下
mysql_client_encoding 似乎沒用
因為 mysql 的 character set 在四個地方分別不一樣:
server, client, database, connection
如果選擇了一個 utf8 的 db, db character set 會是 utf8
但只有這樣還不夠,因為這時重要的是 connection character set 預設仍是 latin1
於是會發生上面的問題
如果在 query 之前先執行
mysql> SET NAMES 'UTF8';
mysql> SET CHARACTER SET UTF8;
(mysql CLI 版)
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET UTF8");
(PHP 版)
以上請注意單引號以及 character set name 是
UTF8(沒有一條橫線)
此時 server 和 connection character set 俱為 UTF8
似乎作用就沒問題了
我把上面的兩次 query 加在 cpg 的
include/functions.inc.php 如下:
*** include/functions.inc.php Sat Apr 2 00:16:08 2005
--- include/functions.inc.php~ Sat Apr 2 00:04:14 2005
***************
*** 64,69 ****
--- 64,73 ----
return false;
if (!mysql_select_db($CONFIG['dbname']))
return false;
+ if (!mysql_query("SET NAMES 'UTF8'", $result))
+ return false;
+ if (!mysql_query("SET CHARACTER SET UTF8", $result))
+ return false;
return $result;
}
(in function cpg_db_connect())
嘿!! 這回再試中文資料似乎沒什麼問題了
輸入->用 phpMyAdmin 看 ->再回到相簿本身
應該是大功告成了
要測的話來這裡
http://photo.javamoh.net/cpg/有興趣的pm給我,我可以開管理者的權限給你