显示符号μ

时间:2013-06-30 11:00:03

标签: php html character-encoding

我在标头中有<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />,但它仍然显示而不是µ。我尝试将AddCharset UTF-8 .php添加到.htaccess,但它没有帮助。

编辑:如果我只是将符号µ放入文件中,则会正确显示。当我尝试从数据库输出时,我得到

2 个答案:

答案 0 :(得分:2)

如果某些内容显示为 UNICODE REPLACEMENT CHARACTER,则表示文档以Unicode编码(例如UTF-8)进行解释,但此时的字节序列在此编码中无效。

换句话说,您的数据/文件不是UTF-8编码的。确保它保存为UTF-8 ,而不仅仅是声明

如果从数据库输出数据时遇到问题,则表示来自数据库的数据不是UTF-8编码的。请参阅Handling Unicode Front To Back In A Web App

答案 1 :(得分:0)

您遇到此问题是因为您的输出实际上不是UTF-8,即使您告诉浏览器它是。你应该解决这个问题。

如果您通过更正输出来修正它,因此它是正确的UTF-8,那么您的问题将得到解决,因为UTF-8可以显示此符号(以及任何其他符号)。如果通过将charset更改为ANSI字符集来修复它,那么您将在代码页中输出可能不支持此符号的输出。

要正确输出,您可以将其输出为html实体&micro;&#181;。如果你现在这样做,符号也会正确显示,但请记住你的实际输出不是UTF-8,所以如果你的页面上需要另一个符号,那么你会遇到同样的问题!

修改

我现在看到你的编辑。如果它适用于硬编码字符,则PHP是正确的,但获取的数据没有正确的编码。您可以通过为数据库,表和/或特定列提供任何unicode排序规则来解决此问题。另一种方法是在查询后使用函数iconv将数据库中的数据转换为UTF-8。