这也是我的问题,我终于找到了解决问题的方法。我不是一个熟练的编码员,但我在这里写下答案,以便对像我一样的人可能会有所帮助,但他没有设法通过他们尝试过的其他方式解决他们的问题。
在我看来,在一般情况下,你总是要确保你已经先进行这三样东西:
将此标签添加到您的每一个HTML源使用一些文本用语言除英语(添加它的开闭头之间标签):
<meta charset="utf8"/>
(正如你看到它的没有关闭对标签)
2-只有你(使用名为$康恩一个mysqli的对象为例)连接到数据库,在那里后,做到这一点也查询:
$conn->query("SET NAMES 'utf8'");
(至少这工作了我自己的语言是波斯语)
3-设置你做表的排序规则为“UTF8 - 通用词”从头开始(......我强调这个“从头”。如果你想知道原因,请阅读下面我的答案!):
当然,我上面说过的所有这三件事都很重要,但是当我摔跤这个尴尬的灾难时,他们都没有帮助自己! :(所以我感到失望,但一如既往的SO页出现!:) 我读到@deceze建议的辉煌制品,其是在下面的文章的评论,并从中看到了这些行:
数据库服务器有一个默认的字符集,数据库可以有一个默认的字符设置,数据库表可以具有默认字符集,最后该列具有字符集设置。规则很简单:如果没有为列指定明确的字符集,则使用下一个更高的默认值。如果该列有明确的字符集,则服务器,数据库和表默认值都不会有任何影响。
其实,我的傻问题是,我们之前做的表(具有比其他UTF8一个unicode)和然后试图改变它的Unicode为utf8时,它似乎没有工作,因为正如文章所说,即使表格的排序与每个字段的排序都是分开的,因此当您更改表格时,其他表格会保留其默认排序规则(您在制作表格时选择的排序规则scratch!)最后,我去了phpmyadmin中的结构选项卡,并将那些仍在使用latin1的字段的排序规则更改为utf8-general-ci。 (这里代表不区分大小写)
我希望它有帮助。
这一直被问及一遍又一遍。我的标准猜测:你没有设置*连接编码*。如果没有更多的细节,很难提出其他建议请参阅[如何在Web应用程序中处理Unicode](http://kunststube.net/frontback)以获取完整的清单。 – deceze 2012-03-19 05:19:12