gpt4 book ai didi

php - 未从数据库中检索到 UTF-8 特殊字符

转载 作者:行者123 更新时间:2023-11-29 06:45:49 26 4
gpt4 key购买 nike

我有一个包含各种语言单词的 MySQL 数据库,因此我将表列设置为“utf8_unicode_ci”。 UTF-8 可以包含所有可能的字符,并且 unicode_ci 也具有正确的排序(但性能较低)。当我在 phpMyAdmin 中浏览表格时,所有特殊字符看起来都正常。问题是当我 SQL 选择一堆名称并将它们显示在我的网站上时,字符无法显示/编码不正确(看起来像 Chrome 中的问号,资源管理器中的方 block 等)。我的网站有正确的编码: <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">如果我将它们粘贴到我的页面上,我也可以显示各种字符。只有在从数据库中检索它们时才会出现问题。 php mysqli_query() 是否更改了编码或 SELECT 查询是否以某种方式搞砸了?

最佳答案

虽然@user4035 的意图是正确的,但实现和推理都是错误的。

  1. 不要无条件地直接向浏览器输出任何错误。程序员不会看到它,而用户与它无关。
  2. SET NAMES 'UTF8' 不等于 set_charset() 函数。前者是一个特定的 SQL 查询,不应用于支持后者的功能。

更好的版本如下。

您必须使用 set_charset() 方法设置连接字符集:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$con=mysqli_connect("host", "user", "pw", "db");
$con->set_charset("utf8");

关于php - 未从数据库中检索到 UTF-8 特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18701344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com