我的数据库充满了编码错误,并且在尝试逆向查找原始数据时不知所措。
这是来自土耳其的示例地址。
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));
这并不能解决最初的损坏问题,编码信息已按照@cleong的建议丢失了
最佳答案
我假设你的数据库是MySQL。您更新编码并尝试吗?首先检查是否可以正确显示在 MySQL 中。将编码/排序规则设置为 UTF-8,使用 phpmyadmin 或 MySQL CLI 进行查询并检查其外观。
关于php - 如何解码 PHP 中格式错误的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12186604/