1

我在 MySQL 4.1 服务器上有一个旧数据库,数据库包含一些用户输入的内容,我已将此数据库复制到新的 MySQL 5 服务器,当我查看打印内容的页面时,我看到带有问题的黑色菱形字符标记在中间。这仅在新服务器上显示。

如果我将此标题添加到页面,菱形不再显示:

header('Content-Type: text/html; charset=iso-8859-1');

如果我取出该标头,则服务器会发送一个如下所示的默认标头,并且菱形会重新出现

内容类型:文本/html;字符集=UTF8

我怎样才能在数据库中解决这个问题(例如表格上的某种转换),这样我就不必把这个标题放在我的所有页面中?

更多信息:我使用 mysqldump 从旧服务器导出数据库,然后使用 CentOS mysql 命令行导入它。我也尝试过使用 phpMyAdmin 导出,但结果相同。

编辑:

查看我的 mysqldump 文件,我可以看到所有 CREATE TABLE 语句都有 charset = Latin1,所以我认为我正在寻找一种以 UTF8 导出数据库的方法。我已经尝试将此选项添加到 mysqldump 但它没有任何效果,转储仍然显示 Latin1:

--默认字符集=utf8

4

3 回答 3

5

连接到数据库后尝试设置字符集:

mysql_set_charset("utf8");
于 2012-10-18T14:36:50.997 回答
3

Trevor 所说的对我有用,但 Mysqli 除外。

$mysqli->set_charset("utf8");
于 2013-08-24T20:00:52.943 回答
1

连接mysql数据库后使用下面的查询。

mysql_query("SET NAMES utf8");

希望这有帮助!

于 2012-10-18T14:39:27.737 回答