问问题
4105 次
2 回答
5
正如您在脚本中看到的,您正在指示浏览器使用 UTF8。这是第一步。
但是,您的数据库需要相同的东西,并且表上的编码/排序规则也需要是 UTF8。
您可以使用排序规则utf8_general_ci
或utf8_unicode_ci
作为排序规则重新创建表,也可以转换现有表(请参见此处)
您还需要确保您的数据库连接(即到 mysql 的 php 代码)使用的是 UTF8。如果您正在使用 PDO,那么有很多文章展示了如何做到这一点。最简单的方法是:
$mysqli->query('SET NAMES utf8');
注意您现在所做的更改是最终的。如果更改数据库的连接编码,可能会影响现有数据。
编辑您可以执行以下操作来设置连接
$mysqli = new mysqli($host, $user, $pass, $db);
if (!$mysqli->set_charset("utf8")) {
die("Error loading character set utf8: %s\n", $mysqli->error);
}
$mysqli->close();
感兴趣的链接:
于 2012-10-22T19:14:05.837 回答
1
SET NAMES 'utf8'
在任何其他查询之前执行查询。
于 2012-10-22T19:17:26.763 回答