2012-12-12 54 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); 
相关问题