数据库字符集转换

时间:2010-08-05 18:46:34

标签: php mysql database encoding character

我已将数据库从一个主机移动到另一个主机。我用PMA导出和bigdump导入。整个数据库在任何可能的地方都设置了latin2字符集。但是在数据库中,特殊字符(波兰语等)会被打破。当我使用SELECT时,我看到“灌木丛” - “Ä ”插入“±”。然后我将文件编码设置为utf-8 ......并且字符很好。如何解决这个问题?可以在查询中使用CONVERT吗?我不想再次导出/导入数据库,因为它有超过200MB。怎么了?

每个PHP / MySQL查询解决方案都会救我。

对不起,如果你不明白这一点,因为我还在学习英语。

1 个答案:

答案 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;有什么作用?