我在数据库中有几年的数据,这是99%的拉丁字符。最近,我在mysql连接后添加了以下内容:
mysqli_set_charset($link, "utf8");
现在,数据库中由亚洲,希伯来语等字符组成的所有现有数据都不再可读,并显示为垃圾数据。
如何修复数据库中的数据,以便用utf8字符集读取?
表charset总是utf8。唯一改变的是在连接期间设置了一个字符集(如上所示),并且在该行没有之前。
表创建非常基础,排序规则为utf8_general_ci
CREATE TABLE `test` (
COLUMNS + INDEXES
) ENGINE=InnoDB DEFAULT CHARSET=utf8
答案 0 :(得分:2)
您现在拥有双重编码的数据,并且您需要先修复数据,然后才能在使用utf8作为字符集的连接上读取数据。
这是一篇博客,详细解释了如何修复数据: http://www.mysqlperformanceblog.com/2013/10/16/utf8-data-on-latin1-tables-converting-to-utf8-without-downtime-or-double-encoding/