如何修复错误转换的文本(案例:áéíúúñ)

时间:2013-04-08 14:58:46

标签: php mysql sql

我来自委内瑞拉,我在一个使用旧数据库的网络应用程序中工作,制作它的人不关心正确渲染西班牙语字符(áéíóúñ),所以有名字保存为ESPAÃ'AO(ESPAÑA),MARTIÂN(MARTÍN)。

所以,我可以像SQL一样替换REPLACE( name, 'Ñ', 'Ñ' )中的字符串但是,¿有一种简单的方法可以在所有情况下进行替换吗?

MySQL(历史记录)中只有一个表有两个具有相同问题的字段(nombre,apellido)。

我也在使用php。

1 个答案:

答案 0 :(得分:0)

请尝试使用控制台从mysql检索数据,只是为了查看数据的显示方式。 如果数据显示正确但没有被破坏,这可能会告诉你mysql工作得很好,但问题仍然存在于PHP中,因为PHP在使用utf-8字符的大部分时工作不好。

如果您在控制台中收到来自mysql的损坏字符,请备份数据库并尝试将数据库AND字段(!)转换为UTF8。这将消耗更多的磁盘空间,但是,确保安全的字符。

如果问题出在PHP中,您可以尝试一些解决方案: 一个是将字符串转换为utf8

iconv('UTF-8', 'ASCII//TRANSLIT', $string_to_convert);

另一种方法,你可以尝试在字符串上使用理解utf-8(多字节)的函数。 有关详细信息,请参阅:PHP: Multibyte String - Manual

HTH

此致

VR