我正在设置一个新服务器,并希望在我的 Web 应用程序中完全支持 UTF-8。我过去曾在现有服务器上尝试过此操作,但似乎总是最终不得不回退到 ISO-8859-1。这...
我正在设置一个新服务器,并希望在我的 Web 应用程序中完全支持 UTF-8。我过去曾在现有服务器上尝试过此操作,但似乎总是最终不得不回退到 ISO-8859-1。
我到底需要在哪里设置编码/字符集?我知道我需要配置 Apache、MySQL 和 PHP 才能做到这一点 — 是否有一些我可以遵循的标准清单,或者可以排除不匹配发生的位置故障?
这是用于新的 Linux 服务器,运行 MySQL 5、PHP 5 和 Apache 2。
数据存储 :
p1
p2
数据访问 :
p4
p5
【【p6】】
$dbh = new PDO('mysql:charset=utf8mb4');
【【p7】】
$mysqli->set_charset('utf8mb4'); // object oriented style mysqli_set_charset($link, 'utf8mb4'); // procedural style
【【p8】】
p9
p10
输出 :
Content-Type: text/html; charset=utf-8
。您可以通过在 php.ini 中设置 default_charset
(首选)或手动使用 header()
函数来实现。
json_encode()
,添加 JSON_UNESCAPED_UNICODE
作为第二个参数。
输入 :
mb_check_encoding()
可以解决这个问题,但您必须虔诚地使用它。实际上没有办法解决这个问题,因为恶意客户端可以以他们想要的任何编码提交数据,而且我还没有找到让 PHP 可靠地为您完成此操作的技巧。
其他代码注意事项 :
p14
第15页
p16
p17