2010-08-05 177 views
1

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

每个PHP/MySQL查询解决方案都能为我节省开支。

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

回答

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;是什么?

+0

latin2 BTW 我已经修复它了,通过添加Mysql40模式 – Misiur 2010-08-06 11:28:06