Php mysqli_fetch_对象不';t从某些表返回字符串中的重音符号
我遇到了一个我似乎无法解决的问题。 当我从MySQL数据库的某个表“articles”中提取对象时,带有重音符号的字符(如éáú等)会变成问号。然而,当我从不同的表格中“突出显示”时,这种情况不会发生 我已经检查了这些表是否在MySQL中使用相同的字符集和类型。我还检查了问题是否仅出现在前端,但我的调试器已经向我显示变量包含问号符号 这是从数据库获取数据的代码Php mysqli_fetch_对象不';t从某些表返回字符串中的重音符号,php,mysql,mysqli,Php,Mysql,Mysqli,我遇到了一个我似乎无法解决的问题。 当我从MySQL数据库的某个表“articles”中提取对象时,带有重音符号的字符(如éáú等)会变成问号。然而,当我从不同的表格中“突出显示”时,这种情况不会发生 我已经检查了这些表是否在MySQL中使用相同的字符集和类型。我还检查了问题是否仅出现在前端,但我的调试器已经向我显示变量包含问号符号 这是从数据库获取数据的代码 if ($result = mysqli_query($conn, $query)) { while ($obj = m
if ($result = mysqli_query($conn, $query)) {
while ($obj = mysqli_fetch_object($result)) {
$resObj[] = $obj;
}
} else return false;
return $resObj;
我可能遗漏了一些明显的东西,但我不知道是什么
编辑:phpMyAdmin中的表显示了正确的字符,因此它们被正确插入。在将数据写入数据库之前,这可能是一个问题。你应该检查你的php代码。作为第一步,尝试转换已存在数据的字符集
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
请考虑备份。
< P>也许是在数据写入DB之前的问题。你应该检查你的php代码。作为第一步,尝试转换已存在数据的字符集ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
以前考虑备份。
所以……没有时间验证这个问题,但看起来问题可能与此有关。此命令将字符集与关联
如果您正在调用.highlights
,然后没有为文章指定DB
,那么至少在理论上,这可能会导致差异。同时mysqli\u set\u字符集($conn,)
调用指令set name
将来有很多设置可以帮助解决这个问题(比如为所有数据库设置默认排序规则并更新值),但是在PHP中显式设置会更安全。显式的比隐式的好。所以…没有时间来验证这一点,但看起来问题可能与此有关。此命令将字符集与关联 如果您正在调用
.highlights
,然后没有为文章指定DB
,那么至少在理论上,这可能会导致差异。同时mysqli\u set\u字符集($conn,)
调用指令set name
将来有很多设置可以帮助解决这个问题(比如为所有数据库设置默认排序规则并更新值),但是在PHP中显式设置会更安全。显式比隐式更好。确保数据库字符集在UTF-8中,连接在UTF-8中吗?嗯,我想不是,mysqli_set_字符集($conn,“utf8”)修复了它。。。我仍然不明白为什么这只是一个表的问题。可能只有一个表有需要UTF8的数据?确保你的数据库字符集在UTF-8中,你的连接在UTF-8中吗?嗯,我想不是,mysqli\u set\u字符集($conn,“UTF8”)修复了它。。。我仍然不明白为什么这只是一个表的问题。可能只有一个表的数据需要UTF8?你编辑了你的问题,所以我的答案可能已经过时了。不,他们只是添加了一个编辑,说明他们在PHPmyAdmin中的表显示了正确的数据字符集。我尝试了一下,但没有改变情况,无论如何谢谢你!你编辑了你的问题,所以我的答案可能已经过时了。没有。他们只是添加了一个编辑,说明他们在PHPmyAdmin中的表显示了正确的数据字符集。我尝试了一下,但没有改变情况,无论如何,谢谢!