<meta charset="UTF-8">
此数据库中的文本用几种不同的语言编写,从英文到中文。
许多'e'都有重音,他们使用时髦的引号。
没有绒毛,这些特殊字符都作为黑色钻石中的问号输出到屏幕上(2除外)。
通过简单地将变量包装在utf8_encode($string)
中,一切都很好......除了那些2。
第一个问题:如果所有内容都已设置,我为什么需要使用utf8_encode
?
第二个问题:有几个条目使用♀和♂(它们就像存储在数据库中一样)。这些显示为简单的问号(没有黑色钻石)。我对他们做了什么并不重要,他们不会改变。我已尝试过utf8_encode
,utf8_decode
,htmlspecialchars
和htmlspecialchars_decode
的所有可能组合。没有。唯一的解决方案是将数据库条目更改为使用♀
作为♀,然后在没有任何漏洞的情况下输出正确。为什么呢?
答案 0 :(得分:0)
对于中文和表情符号,你需要utf8mb4而不是utf8。
对于黑色钻石,请在this Q&A中搜索。它说
由于您似乎使用的是PHP,但没有说明您使用的是php artisan view:clear
还是mysqli
,我会将您推荐给PHP checklist。
如果您有PDO
,那么您可以将符号转换为&#34; html实体&#34;,也许使用PHP&#39; ♀
?不要在客户端使用任何转换工具,只会让事情变得更糟。