为什么外来字符以时髦的方式保存到MySQL服务器?

时间:2011-04-23 03:20:42

标签: php mysql database unicode localization

我将以下内容发送到我的PHP页面,然后调用我的MySQL服务器:

ethan•test•again

但由于某种原因,它会像以下一样保存到数据库中:

ethan•test•again

以下是我的PHP页面中的一些部分代码,它显示我保存数据:

if(mysql_query("CALL InsertTitle
(
  '".mysql_real_escape_string(urldecode($_POST['title']))."'
)"))

有趣的是,当我调用MySQL服务器通过另一个PHP页面显示数据时,它看起来很好。实际上一切都很好,就像我预期的那样。以下是从数据中提取的一些示例部分代码:

$result = mysql_query("SELECT title FROM item WHERE id = '".mysql_real_escape_string($_GET['id'])."'");

print "<?xml version=\"1.0\" encoding=\"UTF-8\"?><rss version=\"2.0\"><channel><title>Titles</title>";

while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) 
{
  echo "<title>".$row{'title'}."</title>";
}

在XML页面上看起来很好:

ethan•test•again

为什么我的MySQL服务器看起来很时髦?我做错了吗?

2 个答案:

答案 0 :(得分:2)

在字符串表字段中使用utf8_general_ci排序规则,并在连接到数据库后添加mysql_query("SET NAMES 'UTF8'");

答案 1 :(得分:0)

结束结束看起来很好,它的东西在中间。我感觉它只是不支持角色的显示器。你在哪里看数据库?如果它的控制台或phpmyadmin,我认为它不会正确显示,即使它保存在utf8中。