我已将数据库从一个主机移动到另一个主机。我用PMA导出和bigdump导入。整个数据库在任何可能的地方都设置了latin2字符集。但是在数据库中,特殊字符(波兰语等)会被打破。当我使用SELECT时,我看到“灌木丛” - “Ä ”插入“±”。然后我将文件编码设置为utf-8 ......并且字符很好。如何解决这个问题?可以在查询中使用CONVERT吗?我不想再次导出/导入数据库,因为它有超过200MB。怎么了?
每个PHP / MySQL查询解决方案都会救我。
对不起,如果你不明白这一点,因为我还在学习英语。
答案 0 :(得分:1)
如果一个表包含错误的字符集(假设utf-8已经滑入latin1列varhcar(255)):
ALTER TABLE tablename MODIFY colummname BINARY(255);
ALTER TABLE tablename MODIFY colummname VARCHAR(255) CHARSET utf8;
ALTER TABLE tablename MODIFY colummname VARCHAR(255) CHARSET latin1;
另请参阅:http://dev.mysql.com/doc/refman/4.1/en/charset-conversion.html
但是,更可能您的默认连接中只有错误的字符集。选择结果之前SET NAMES latin1;
有什么作用?