1

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

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

MySQL (historias) 中只有一个表,其中两个字段 (nombre, apellido) 存在相同的问题。

我也在使用php。

4

1 回答 1

0

请尝试使用控制台从 mysql 中检索数据,以查看数据将如何显示。如果数据显示正确且没有损坏,这可能会告诉您 mysql 工作正常,但问题仍然存在于 PHP 中,因为 PHP 使用较大部分的 utf-8 字符时工作不正常。

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

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

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

另一种方式,您可以尝试仅在字符串上使用理解 utf-8(多字节)的函数。有关更多信息,请参阅:PHP:多字节字符串 - 手册

高温高压

真挚地,

虚拟现实

于 2013-04-08T15:30:01.507 回答