2 回答
如果某些内容显示为 UNICODE REPLACEMENT CHARACTER,则表示文档以 Unicode 编码(例如 UTF-8)解释,但此时的字节序列在此编码中无效。
换句话说,您的数据/文件不是 UTF-8 编码的。确保它保存为 UTF-8,而不仅仅是这样声明。
如果您在从数据库输出时遇到问题,则意味着来自数据库的数据不是 UTF-8 编码的。请参阅在 Web 应用程序中从前到后处理 Unicode。
你会遇到这个问题,因为你的输出实际上不是 UTF-8,即使你告诉浏览器它是。你应该解决这个问题。
如果您通过更正输出来修复它,使其成为正确的 UTF-8,那么您的问题将得到解决,因为 UTF-8 可以显示此符号(以及任何其他符号)。如果您通过将字符集更改为 ANSI 字符集来修复它,那么您将在可能不支持此符号的代码页中输出。
要正确输出,您可以将其输出为 html 实体,µ
或者µ
. 如果您现在执行此操作,符号也会正确显示,但请记住您的实际输出不是 UTF-8,因此如果您的页面上需要另一个符号,那么您将遇到同样的问题!
编辑
我现在看到你的编辑了。如果它使用硬编码字符,那么 PHP 是正确的,但获取的数据没有正确的编码。您可以通过为您的数据库、表和/或特定列提供任何 unicode 排序规则来解决此问题。另一种方法是在查询后使用函数iconv将数据库中的数据转换为 UTF-8。