Mysql Charset在标题中设置,结果在页面上有所不同

时间:2011-08-02 14:00:46

标签: php mysql utf-8 character-encoding special-characters

我正在构建一个Mysql数据库,包含小马的所有者和繁殖者的详细信息,以及动物本身的详细信息。信息通过PHP更新和查看。作为其中的一部分,我有列出联系人的页面,以及可以将联系人(通过下拉列表)分配给动物作为所有者或育种者的其他页面。数据库连接在标题中设置(由函数调用),并在每个查询结束时关闭。

我注意到某些字符(例如É)未在联系人下拉列表中正确呈现( ),但在列表页面中没有问题。在查看了此处提出的先前任务(Special characters in PHP / MySQL)后,我将表的排序设置为utf8_bin,并通过

连接到数据库
<?php
$con = mysql_connect("localhost", "user", "pass");
mysql_select_db("db", $con);
mysql_set_charset('utf8',$con);
?>

这完全解决了下拉列表问题 - 但列表页面现在导致了问题。 (É现在是‰)。我的浏览器设置为Western ISO-8859-1,但即使将其更改为UTF-8也没有帮助。回应

$charset = mysql_client_encoding($con);
echo "The current character set is: $charset\n";
列表底部的

返回uft8,应该如此。我的bam被煮了。

任何建议都非常感谢!

(P.s。期待:语言绝大多数是英语,但有一些爱尔兰盖尔语,也可能是一些法语和德语。我也尝试过所有上述的Latin1编码。)

修改

解决问题:

  • 设置连接的charset($ con)
  • 为表格中的数据设置排序规则 - 按列,表格不够
  • 确保通过元标记在我的标题中声明HTML字符集。

1 个答案:

答案 0 :(得分:0)

我怀疑你以某种方式列出显示代码utf8编码HTML。删除那里的utf8_encode个电话。

您可能还缺少HTML页面本身的编码声明,这需要告诉浏览器该页面具有特定的字符集。