2012-10-07 27 views
-1

我有一個數據庫,其中包含utf8_unicode_ci字符串。一些例子是「Zìzhìqū」和「Shěng」。爲什麼php/mysql轉換這個字符?

當我運行這段代碼:

$result = mysql_query ("SELECT foo FROM bar"); 

$rows = Array(); 

while ($row = mysql_fetch_row ($result)) 
    array_push ($rows, $row [0]); 

mysql_free_result ($result); 

$rows數組包含在預期的位置,但 「盛」 已成爲 「噓NG?」 「Zìzhìqū」。當我將字符串寫入文件時,我可以看到流氓問號是普通的ASCII 0x3f。

WTF?

我使用PHP 5.3.10-1ubuntu3.4和mysql Ver 14.14 Distrib 5.5.24。任何想法是什麼造成這個?

+0

你讀過這個> http://kunststube.net/frontback/? –

回答

0

你設置PHP和MySQL之間的連接 UTF-8字符編碼?不這樣做將導致?代替UTF-8字符。

SET NAMES 'utf8' 
0

請保持你的數據庫DEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci

然後

header("Content-type: text/html; charset=utf-8"); 
//mysql connection 
mysql_query("SET NAMES utf8"); 
相關問題