如何恢复由于字符集导致的损坏的数据库数据

时间:2011-02-21 15:49:55

标签: mysql character-encoding

我正在使用具有MySQL数据库的rails应用程序。它是一个拥有国际受众的Web应用程序。经过几天的工作,我注意到所有的表和数据库本身都有latin1_sweedish_ci作为整理。后来,在文本字段中,我发现了这样的混乱:

It’s educational and

显然这是由于错误的字符集。如果它是UTF-8,那就不会发生。但是,这已经发生了,我们可以将这个损坏的数据恢复/转换为utf吗?

3 个答案:

答案 0 :(得分:1)

您可以尝试mysqldump数据库,通过iconv传递转储,然后重新加载。

答案 1 :(得分:0)

您还可以尝试将所有列转换为二进制,然后转换为UTF-8。有关详细信息,请参阅mysqlperformanceblog.comdev.mysql.com

答案 2 :(得分:0)

你也可以尝试这个...首先备份你的数据库...然后制作一个脚本,逐个获取记录并执行utf8_decode然后再将它存储在数据库中...但在此之前更改charchter设置为utf8 ...