gpt4 book ai didi

php - 设置连接字符集的结果违反直觉

转载 作者:行者123 更新时间:2023-11-29 15:00:54 27 4
gpt4 key购买 nike

我几乎完成了对我的网络应用程序进行彻底“UTF-8 感知”的任务。但我发现,如果我将连接字符集设置为 utf8使用mysqli_set_charset ,结果是输出显示不正确(实际上,页面的字符编码似乎被错误识别),而如果我设置连接字符集,它就会正确显示。

例如,我的数据库中的一个表中存储了一个字符串 - 该列的字符集是 utf8 - 正确回显为 Página principal如果我设置连接字符集。如果我设置了连接字符集,它会显示为 Página principal .

详细信息:我用来测试此行为的 PHP 脚本在 <head> 中具有以下元标记部分:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

我已确定主机上新连接的默认字符集是 latin1 。我正在连接的数据库具有默认字符集 utf8 。以下是用于创建数据库链接的代码:

$cxn = @mysqli_connect('localhost', $db_user, $db_password, $db_database) or die('Failed to connect to the database.');
mysqli_set_charset($cxn, 'utf8');
mysqli_query($cxn, 'SET SESSION sql_mode = \'TRADITIONAL\'');

另外:如果它可以作为一些额外的取证证据,我发现如果我在 Firefox 中查看该页面并手动将字符编码更改为 ISO-8859-1 ,上述字符串显示为 Página principal .

最佳答案

这可能是由于插入数据时字符编码不同,因此可能存储在错误的编码中(表编码是否设置为utf8?)。检查新插入的数据是否正常返回。 (又名通过 utf8 连接插入的数据)

关于php - 设置连接字符集的结果违反直觉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3129157/

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