我使用 LOAD DATA INFILE 将一些数据导入 MySQL 数据库。表本身和列都使用UTF8字符集,但是数据库的默认字符集是latin 1。因为数据库的默认字符类型是latin1,而且我使用LOAD DATA INFILE没有指定字符集,它解释文件为 latin1,即使文件中的数据是 UTF8。现在我的 UTF8 列中有一堆编码错误的数据。我找到了这篇文章这似乎解决了类似的问题,即“UTF8 插入 cp1251”,但我的问题是“Latin1 插入 UTF8”。我尝试在那里编辑查询以将 latin1 数据转换为 UTF8,但无法正常工作。数据要么是一样的,要么比以前更加混乱。例如,Québec 一词显示为 Québec。
[附加信息]
When Selecting the data wrapped in HEX(), Québec has the value 5175C383C2A9626563.
该表的创建表(简称)是。
CREATE TABLE MyDBName.`MyTableName`
(
`ID` INT NOT NULL AUTO_INCREMENT,
.......
`City` CHAR(32) NULL,
.......
`)) ENGINE InnoDB CHARACTER SET utf8;