当我从数据库中获取一条记录时,其中数据库、表和行都设置为 utf8_unicode_ci
,我收到一个用对角线正方形框住的问题,而不是正确的 unicode 字符;尽管我还在页面上设置了 HTML 编码:
<meta charset="utf8">
我怀疑这与MySQL/PHP有关,因为当我print_r
输出时,问号仍然显示,而手动输入的度数符号(我应该看到的符号)工作正常。
此 SQL 查询也未执行任何操作:
SET NAMES utf8;
有什么想法吗?我已经检查了设置的每一端。
utf8_unicode_ci
是排序规则,您需要字符集作为utf8
示例:
CREATE TABLE someTable DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci;
正如adrienne在他们的回答中所说:
确保满足以下所有条件:
- 数据库连接使用 UTF-8
- 数据库表使用 UTF-8
- 数据库表中的各个列使用 UTF-8
- 数据实际上以数据库内的 UTF-8 编码正确存储(如果您从不良来源导入,则通常不是这种情况, 或更改了表或列排序规则)
- 网页正在请求 UTF-8
- Apache 正在提供 UTF-8