2011-06-13 79 views
0

我刚刚从我的实时服务器导入到本地服务器的mysql表。 但是,所有的引号和一些特殊字符已经更改为' ? '。 而我没有备份。任何人都可以帮助我恢复它。mysql unicode问题

+0

究竟改变了什么?数据库有什么字符集?需要更多信息。 – 2011-06-13 12:43:57

+0

我怀疑它 - 如果你失去了数据,那么我认为你不能可靠地自动构造它。您可以搜索/替换常见图案,例如如果这是法语的话,“prèsde”改为“prèsde”。但是,你确实已经丢失了数据吗?难道你在本地服务器上使用的客户端只是不显示它们? – Rup 2011-06-13 12:44:56

+0

你是否丢失了数据,我也不知道这个角色在 – user737767 2011-06-13 12:46:04

回答

0

将您的数据库的CHARACTER SET更改为utf8,然后将您的表从实时服务器重新导入,这可能会修复它。

ALTER DATABASE MyDb CHARACTER SET utf8; 

编辑:

您可能还需要将其导入回本地数据库之前更改表CHARSET。 打开您的.sql文件并更改CHARSET。例如:

ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ;

ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=40 ;

但只改变CHARSET没有别的

+0

我不能做到这一点我没有备份 – user737767 2011-06-13 12:53:06

+0

@ user737767从服务器取回你的餐桌 – afarazit 2011-06-13 12:56:20

+0

已经更新 – user737767 2011-06-13 13:01:29