这是摆脱编码头痛的秘诀:
- 您的数据库、表和字段必须使用 collation
utf8_unicode_ci
。
- 确保您的代码(HTML、PHP... all)是 UTF-8 编码的。
- 始终使用此
meta
标签:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- 这很长:
如果您有权访问 MySQL 文件配置my.cnf
,只需添加以下行:
init-connect='SET NAMES utf8'
这告诉 MySQL 以 UTF-8 为每个连接返回结果。
如果您无法编辑my.cnf
但正在使用 PDO,请以这种方式打开连接:
$pdo = new PDO($dsn, $usr, $pwd, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
如果您不使用 PDO...开始使用它,您还在等什么?同时,如果您使用 ext/MySQLi,您可以在每次连接后执行此操作:
$mysql->set_charset('utf8');
或者,如果您使用普通的旧 ext/MySQL:
mysql_set_charset('utf8', $connection);