MySQL转储和导入不保留编码?

时间:2012-07-17 17:51:29

标签: mysql encoding utf-8 character-encoding mysqldump

我正在尝试将远程计算机上的MySQL数据库中的表复制到本地计算机上的另一个MySQL数据库。我注意到在将转储导入我的本地机器后,有一些字符,如•,而不是单引号。

我认为这是一个编码问题,所以我进入了两个数据库并运行show create table posts,接近两者的末尾,我看到CHARSET=utf8。另外,我在转储文件上运行file -iscp在我的本地机器之前和之后,它们都是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)

1 个答案:

答案 0 :(得分:4)

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

SHOW VARIABLES LIKE 'character_set_%'

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