我使用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');