1
4

2 回答 2

5

正如您在脚本中看到的,您正在指示浏览器使用 UTF8。这是第一步。

但是,您的数据库需要相同的东西,并且表上的编码/排序规则也需要是 UTF8。

您可以使用排序规则utf8_general_ciutf8_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();

感兴趣的链接:

是否使用“SET NAMES”

于 2012-10-22T19:14:05.837 回答
1

SET NAMES 'utf8'在任何其他查询之前执行查询。

于 2012-10-22T19:17:26.763 回答