3

我正在尝试将远程计算机上的 MySQL 数据库上的表复制到本地计算机上的另一个 MySQL 数据库。我注意到,在将转储导入本地机器后,出现了像 €™ 这样的字符,而不是单引号。

我认为这是一个编码问题,所以我进入了两个数据库并运行show create table posts,在两个数据库接近尾声时,我看到了CHARSET=utf8. 此外,我在转储文件上运行file -i了转储文件,前后scp都将其导入本地计算机,它们都是 utf8。

但是,当我导入这个文件时,我之前得到了这个:

  attendees—policy makers, 

之后:

  attendees—policy makers,

我不确定为什么会这样,一切都在使用 utf8,我错过了什么?

编辑:我正在mysql Ver 14.12 Distrib 5.0.75, for debian-linux-gnu (x86_64)远程和mysql Ver 14.14 Distrib 5.5.25a, for osx10.7 (i386)本地使用。

4

1 回答 1

5

在这两个系统上,您必须检查您的连接编码是否正确:

SHOW VARIABLES LIKE 'character_set_%'

通常看到这样的字符是双重编码的结果。确保您可以将连接和客户端编码匹配为完全相同。有许多命令行选项可以促进这一点,或者如果您使用的是驱动程序或客户端,其中的某些东西可以对其进行调整。

于 2012-07-17T17:57:55.140 回答