Mysql字符集问题

我试图从一台服务器导入一些数据到另一台。 但是当我这样做的时候,我遇到了字符集问题。

像Goiânia这样的词变成了Goi?ni,conceição变成了concei?oo

我的应用程序被设置为使用latin1字符集

服务器1:MySQL字符集:UTF-8 Unicode(utf8)表整理:latin1_swedish_ci

服务器2:MySQL字符集:UTF-8 Unicode(utf8)表整理:latin1_swedish_ci

我用来从服务器1导出数据的命令mysqldump -u root -p –default-character-set = iso-8859-1 database_name> db.sql

用于还原到服务器2的命令mysql -u root -p database_name <db.sql

根据mysql的版本,你想要使用:

–default-字符集= LATIN1

要么

–default-字符集= UTF8

在某些版本的mysqldump中有一个奇怪的错误,那就是在命令行上指定utf8会对已经编码为utf8的表进行双重编码,如果我记得的话,这个表在utf8中是在5.0.51+之前的一年前被修复的。

如果你的字符集在表中被正确的指定了,我不相信你需要在执行转储时使用默认字符集,因为它需要从表中整理和字符集。

重新检查server 1的sorting规则和字符集。 它看起来是一种不同的格式,即使你强制另一个( iso-8859-1 )出口这不能工作。 仔细检查表和数据库等。

让我知道这是否有帮助。