即使所有内容都是utf-8编码的,为什么还要使用set_charset(“ utf8”)? (MySQLi-PHP)

我表的排序规则是utf8_general_ci.

我的页面使用UTF-8编码(没有BOM).

在我的页面中,我的Equiv元标记将字符集设置为utf8

我的数据中有土耳其语字符.

当我输出它们时,它没有按原样显示它们,但是当我执行$db-> set_charset(“ utf8”);时,它起作用了.

为什么我必须使用$db-> set_charset(“ utf8”);即使所有内容都是utf-8编码的?

解决方法:

数据在MySQL中以UTF-8格式存储,但PHP的客户端连接排序规则则不是.这就是为什么必须在PHP中使用set_charset进行数据库连接的原因.

更新资料

php.ini:default_charset utf-8
.htaccess:AddDefaultCharset utf-8

上一篇:MySQLi绑定参数与IN数组


下一篇:php-mysqli_fetch_assoc-如果同时更改数据会怎样?