我有以下字符ó存储在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'");
时,它显示不正确。
我错过了什么?
答案 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" />
我首先使用网络嗅探器(例如TCPView或Wireshark)或其他一些方法来验证服务器的输出是否真的是UTF-8,即{{ 1}}从服务器发送为0xC3 0xB3。如果可以,请检查ó
设置是否存在问题。