UTF-8编码与数据库有关并在网页上显示

时间:2011-03-15 18:02:35

标签: mysql encoding utf-8

我有以下字符ó存储在MySQL数据库的VARCHAR列中。此列的排序规则为utf8_general_ci

在网页上,我有以下元标记:

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

然而,当数据被拉出并显示时,它显示为:

但仅限于我的Mac。

如果我有mysql_query("SET NAMES 'UTF8'");,那么它会在我的Mac上正常显示。

在我的电脑上显示正确,但是当我添加mysql_query("SET NAMES 'UTF8'");时,它显示不正确。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

有很多事情可能导致这种情况,您尝试过的网络浏览器可能会尝试以不同的方式提供帮助,或者使用不同的默认设置。

从MySQL手册9.1.10. Unicode Support判断,如果你想从MySQL输出UTF-8,应该使用SET NAMES 'UTF8'

你的内容类型看起来有点奇怪,这是一个错字吗?应该是:

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

我首先使用网络嗅探器(例如TCPViewWireshark)或其他一些方法来验证服务器的输出是否真的是UTF-8,即{{ 1}}从服务器发送为0xC3 0xB3。如果可以,请检查ó设置是否存在问题。