【发布时间】:2013-09-01 04:35:44
【问题描述】:
我遇到了一种非常奇怪的行为。当我使用 UTF8 字符(特别是 'ő' 或 'ű' 匈牙利字符)运行 insert into 时,它会插入一个 ?而不是字符。但是,如果我在传入查询之前将其回显,它会显示正确的字符。
我做了什么:
- 我已经在 mysql 表中设置了所有可能的排序规则、字符集和 数据库转换为 UTF8。
- 我已致电
mysql_query("SET NAMES 'UTF8'"); - 我已致电
mysql_query("SET CHARACTER SET UTF8"); - 我已将网站编码设置为:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
按预期工作:
- PHPMyAdmin
- 从表中回显特殊字符
它在本地主机服务器上运行。 非本地服务器的默认编码是 ISO-8859-1,我无法更改。
【问题讨论】:
-
同时检查您的 HTTP 标头。即使您设置了元标记,大多数浏览器也默认使用 HTTP 标头。
-
似乎奇怪地用 utf-8 标头和 iso-8859-1 元标记解决了。
标签: php sql encoding utf-8 special-characters