我正在使用这个加拿大邮政编码集合。令我失望的是,许多法语名称被错误编码,因此“Trois-Rivières”显示为“Trois-Rivi�Res”等等。这似乎是数据库本身的错误,而不是我的文本编辑器/浏览器的错误。
有没有办法正确编码这些重音标记?它们太多了,无法手动查找和替换。
这些词似乎包含那个替换问号,'\uFFFD'
。这意味着数据丢失,但也是查找这些值的简单标记。
用错误的字符串作为主键创建一个表。修复可能比想象的要容易。在示例中,R
在 qm 而不是之后的大写r
可能源于单词大写。i?r
很有可能i e-gauche r
。
然后进行正则表达式替换即可。
但是,重新导入更正的数据库转储可能更容易。修复不需要在 SQL 中。
在 php 中,您可以使用以下内容从 ascii(拉丁 1)编码文本重新映射到 utf8。
$str = mb_convert_encoding($str,'ISO-8859-1', 'UTF-8');