因為配置文件設置的 default_character_set 是 utf8,數據表默認采用的就是 utf-8 建立的。這也應該是所有采用 MySQL 4.1 的主機提供商應該采用的配置。所以我們要保證的只是客戶端與 MySQL 交互之間指定編碼的正確。
這只有兩種可能,客戶端以 gb2312 格式發送數據,或者以 utf-8 格式發送數據。
如果以 gb2312 格式發送:
SET character_set_client='gb2312' SET character_set_connection='utf8' 或者 SET character_set_connection='gb2312' 都是可以的,都能夠保證數據在編碼轉換中不出現丟失,也就是保證存儲入數據庫的是正確的內容。
function set_charset($charset) { // check mysql version first. $serverVersion = mysql_get_server_info($this->dbh); $version = explode('.', $serverVersion); if ($version[0] < 4) return;
// check if utf8 support was compiled in $result = mysql_query("SHOW CHARACTER SET like 'utf8'", $this->dbh); if (mysql_num_rows($result) < = 0) return;