关于mysql:PHP正在搞乱字母 ?, ?, ü

PHP is messing with the letters ?, ?, ü etc

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
UTF-8 all the way through

所以我在一个MySQL数据库中保存了一些数据,它用"umlauts"存储在那里。当我谈到巫术时,我指的是这些德文字母:??和它们的大写吊坠。

现在我通过php执行一个查询,如下所示:

1
2
3
4
5
6
$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"这样的德语单词了。"保存在我的数据库中。PHP查询在屏幕上执行并显示为"baumf"?"龙"。

我的问题:在哪里可以将UFT-8设置为PHP中的标准?有什么功能吗?


需要将mysql连接设置为utf8

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

将页面另存为utf8,并将其放入页首

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


尝试将mysql表设置为utf8,否则使用

1
 echo utf8_encode($x);


这可能不是PHP问题。您应该检查数据库中使用的字符排序规则是否与用于收集这些特殊字符的排序规则匹配。如果这些不匹配,数据库就无法保存您请求的正确值。