我使用LOAD DATA INFILE将一些数据导入MySQL数据库.表本身和列使用UTF8字符集,但数据库的默认字符集是latin 1.因为数据库的默认字符类型是latin1,并且我使用了LOAD DATA INFILE而没有指定字符集,所以它被解释文件为latin1,即使文件中的数据是UTF8.现在我的UTF8列中有一堆编码错误的数据.我发现这篇文章似乎解决了类似的问题,即"在cp1251中插入了UTF8",但我的问题是"在UTF8中插入了Latin1".我已经尝试在那里编辑查询以将latin1数据转换为UTF8,但无法使其工作.数据与之前的数据相同,甚至更多.举个例子,Québec这个词显示为Québec.
[附加信息]
选择包含在HEX()中的数据时,Québec的值为5175C383C2A9626563.
此表的Create Table(缩写)是.
CREATE TABLE MyDBName.`MyTableName`
(
`ID` INT NOT NULL AUTO_INCREMENT,
.......
`City` CHAR(32) NULL,
.......
`)) ENGINE InnoDB CHARACTER SET utf8;
Run Code Online (Sandbox Code Playgroud)