我在数据库中有几年的数据,其中99%是拉丁字符。最近,我在mysql连接后添加了以下内容:
mysqli_set_charset($link, "utf8");
现在数据库中所有由亚洲、希伯来等字符组成的现有数据都不再可读,并显示为垃圾数据。
我如何修复数据库中的数据,使其可读与utf8字符集?
表的字符集总是utf8。唯一改变的是,在连接期间有一个字符集集(如上所示),而在该行之前不存在。
表的创建相当基本,排序规则是utf8_general_ci
CREATE TABLE `test` (
COLUMNS + INDEXES
) ENGINE=InnoDB DEFAULT CHARSET=utf8
现在有了双编码的数据,在使用utf8作为字符集的连接上读取数据之前,需要对数据进行修复。
这里有一个博客详细解释了如何修复你的数据:http://www.mysqlperformanceblog.com/2013/10/16/utf8-data-on-latin1-tables-converting-to-utf8-without-downtime-or-double-encoding/