【发布时间】:2013-05-16 00:06:53
【问题描述】:
带有特殊字符的内容,例如' " - 存储时被替换为像� 这样的字符。但并非所有字符实例都更改为像� 这样的字符。所以这有点奇怪,为什么它只影响一些角色而不是全部。
在网上和 SO 中阅读了一些文章后,我发现了 table collation 和 charset
- 我正在使用 PHP MySQL
- 我在存储和获取值时使用准备好的语句
- 数据库表排序规则设置为
utf8_unicode_ci - 我的页面是
html5和<meta charset="utf-8">
通过上述设置,我仍然得到黑色钻石。有什么帮助吗?我有点绝望。
编辑:
也许你们中的一些人将来会遇到完全相同的问题。您可能会在下面找到我的答案作为完全相同的解决方案。干杯!
【问题讨论】:
-
数据库中的
character set和names是否也设置为utf8? -
@Waygood 啊,我没有检查过。我的主机在创建数据库时有自己的用户界面,它没有让我在创建数据库时选择
char set。我现在去改一下,看看能不能解决问题。 -
数据库中的数据看起来是否正确?
-
然后在连接
SET CHARACTER SET utf8;SET NAMES utf8;后尝试运行以下查询并尝试使用元标记<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> -
@andyb 不,这是不正确的。当我使用 phpmyadmin 检查时,存储的数据也有黑色菱形。
标签: php mysql character-encoding collation