PHP/MySQL 连接在哪里采用其默认字符集?

PHP/MySQL 连接在哪里采用其默认字符集?

我使用mysql_connect仅以 UTF-8 定义的数据库。在配置中,我可以看到任何地方,UTF-8 Unicode (utf8)utf8_general_ci

但是,当我打开 PHP 连接,然后使用 时echo mysql_client_encoding();,我得到的latin1输出非常出乎意料。它是从某种 PHP/Apache 配置中获取的吗?

答案1

在 /etc/mysql/my.cnf 中的 [client] 下添加此行

default-character-set=utf8 

答案2

您必须为 PHP MySQL 连接设置编码,因为它不会从表/数据库定义中读取编码。请按如下方式操作:

mysql_set_charset('utf8',$link);
// or in OOP style:
$mysqli->set_charset('utf8');

相关内容