- 所以我有一堆MySQL表谁的VARCHAR字段是utf8_general_ci
- PHP的DEFAULT_CHARSET是UTF8
- 最后,我设置的字符集为utf8在我的HTML头
<meta charset="UTF-8">
此数据库中的文本是用几种不同的语言从英语写入中文。的MySQL,PHP和HTML字符集愁楚
很多'e's都有他们的口音,他们使用时髦的语录。
没有绒毛,这些特殊字符全部输出到屏幕上作为黑色钻石中的问号(2除外)。
通过简单地在utf8_encode($string)
所有包裹的变量是很好...再次,除了那些2.
第一个问题:为什么我需要使用utf8_encode
如果一切都已经设置呀?
第二个问题:几个条目使用♀和♂(它们就像那样存储在数据库中)。这些显示为简单的问号(无黑钻石)。不管我对他们做什么,他们都不会改变。我已尝试过utf8_encode
,utf8_decode
,htmlspecialchars
和htmlspecialchars_decode
的所有可能组合。没有。唯一的解决方案是将数据库条目更改为例如使用♀
,然后没有任何绒毛,它就会正确输出。为什么?
如果您的数据不是UTF-8,那么您需要使用'utf8_encode',如果不是,则意味着链接中的某些内容从HTML - >浏览器 - >服务器 - > PHP - >数据库连接 - >数据库。 – tadman
能否详细说明一下?我可能错过了什么?这也不能解释为什么这两个男性和女性角色不工作 –
你需要确保链中的每一步都是UTF8或什么东西会被打破。我不确定你的问题在哪里,但你必须仔细测试每个阶段。 – tadman