我来自委内瑞拉,我在一个使用旧数据库的网络应用程序中工作,制作它的人不关心正确渲染西班牙语字符(áéíóúñ),所以有名字保存为ESPAÃ'AO(ESPAÑA),MARTIÂN(MARTÍN)。
所以,我可以像SQL
一样替换REPLACE( name, 'Ñ', 'Ñ' )
中的字符串但是,¿有一种简单的方法可以在所有情况下进行替换吗?
MySQL(历史记录)中只有一个表有两个具有相同问题的字段(nombre,apellido)。
我也在使用php。
答案 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