我有一个充满编码错误的数据库,我在试图反向查找原始数据时不知所措。
这是一个来自土耳其的地址样本。
M�¼ze M�¼d�¼rl�¼�Ÿ�¼
Konyalt�± Cad.
Muratpa�Ÿa
Antalya
更新
问题有两个方面。
- 原始
latin1_swedish_ci
表中已损坏的字符。即落在字符集之外的字符 - phpMyAdmin导出/导入过程中使用双重utf-8编码
后者的解决方案似乎是:
$str = str_replace('?', chr(194).chr(131), $str);
$str = utf8_decode(utf8_decode($str));
这并不能解决原始的损坏问题,即编码信息已经丢失,正如@cleaong
我假设您的数据库是MySQL。你更新了编码并尝试了吗?首先检查您是否可以让它正确地显示在MySQL中。将编码/排序规则设置为UTF-8,使用phpmyadmin或MySQL CLI进行查询并检查其外观。