2012-12-12 95 views
2

可能重複:
UTF-8 all the way throughPHP與字母A搞亂,ö,ü等

所以我在MySQL數據庫中保存的一些數據,並與 「變音」 存儲在那裏。 當我說變音時,我的意思是這些德文字母:ö,ä,ü和它們的大寫字母。

所以,現在我通過PHP執行查詢,像這樣:

$query = "SELECT * FROM tcms_references WHERE id =".$row->id; 
$erg = mysql_query($query); 
$rowt = mysql_fetch_object($erg); 
foreach($row as $x) { 
echo $x 
} 

現在沒有德語單詞,如「Baumfällung」保存在我的數據庫。 PHP查詢被執行並在屏幕上顯示爲「Baumfääääängung」。

我的問題:我可以在哪裏設置UFT-8作爲Standart的PHP?有什麼功能或什麼?

+1

你的MySQL數據庫/表使用utf8嗎? – nkr

+2

我不認爲你的問題是與PHP,數據庫字段上存儲您的德語單詞的排序規則是什麼? – Pitchinnate

+0

是的,我的數據庫配置正確!我通過控制檯+查詢來測試! –

回答

4

您需要設置MySQL連接爲utf8

mysql_query ('SET NAMES UTF8;'); 
mysql_query ('SET COLLATION_CONNECTION=utf8_general_ci;'); 
mysql_client_encoding($conn);// where $conn is your connection 

另存爲utf8的頁面,也把這個頁面的頭部

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
+0

請勿使用「SET NAMES」。改用['mysql_set_charset'](http://php.net/mysql-set-charset)。 – nkr

+0

'mysql_set_charset'也被棄用:http://php.net/manual/en/function.mysql-set-charset.php – Asqan

0

這可能不是PHP問題。您應該檢查數據庫中使用的字符排序與您用來收集這些特殊字符的字符排序是否匹配。如果這些不匹配,數據庫無法保存您請求的正確值。

+0

我已經回答了。我的數據庫的字符集設置爲UTF-8。 –

1

嘗試MySQL表設置爲utf8或者使用

echo utf8_encode($x); 
相關問題