2012-02-07 144 views
0

我有一些表设置为utf8_general_ci,并使用PHP的mysqli驱动程序,字符集设置为'utf8'。我已在DEFAULT_CHARSET也设置为UTF-8PHP和MySQLi UTF8

然而,字符正在与“\u0101l

任何想法换成这是什么或如何解决呢?在我没有使用utf8的mysqli之前,它只显示了一个问号,而不是钻石问号 - 只是一个常规的'?'

谢谢!

+0

AFAIK MySQL不会永远JSON编码您的字符。请逐步调试,确切发生这种情况。 – deceze 2012-02-07 03:11:55

+0

你的PHP文件编码怎么样?它也是UTF-8吗? – 2012-02-07 03:10:56

回答

1

我很确定你在某处使用“htmlentities()”或“html_entity_decode()”。问题是,htmlentities()仍然试图将其输入解释为ISO-8859-1,而html_entity_decode()现在默认为UTF-8。解决方案:如果您使用上面列出的这些功能中的任何一种,则每次都明确指定编码类型。我有这个问题,我的一个同事写了一篇关于该主题的文章也http://lab.clearpixel.com.au/2012/01/html-entity-character-conversion-in-php/

我希望它能帮助