将.CSV文件导入MySQL时保留字符集

将.CSV文件导入MySQL时保留字符集,mysql,phpmyadmin,Mysql,Phpmyadmin,我想将一个约60k行的.xlsx文件导入MySQL。有些列包含越南语字符。我成功地将.xlsx转换为.csv,而没有弄乱字符集。但是,在将.csv导入MySQL时,我不能做同样的事情 我使用了加载数据填充。它看起来像这样: LOAD DATA LOCAL INFILE 'c:/Projekt/Big Data/events.csv' INTO TABLE database.table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMI

我想将一个约60k行的
.xlsx
文件导入MySQL。有些列包含越南语字符。我成功地将
.xlsx
转换为
.csv
,而没有弄乱字符集。但是,在将
.csv
导入MySQL时,我不能做同样的事情

我使用了加载数据填充。它看起来像这样:

LOAD DATA LOCAL INFILE 'c:/Projekt/Big Data/events.csv' 
INTO TABLE database.table 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES;
(来源:)

这种方法可以很好地导入数据,但越南语字符的字符集完全混乱。我确实将表的排序规则更改为
utf8\u unicode\u ci

我还使用较小的数据集测试了MySQL的传统导入方法,它完美地保留了字体。但是我不能使用它,因为我的文件大小超过了MySQL的限制


非常感谢有人能帮我解决这个问题。

尝试通过导入指定显式字符集:

LOAD DATA LOCAL INFILE 'c:/Projekt/Big Data/events.csv' 
INTO TABLE database.table 
CHARACTER SET utf8
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES;

有关从文件加载的更多详细信息。

我认为您的问题具有误导性。“字体”表示字符的可变外观,例如在Arial字体、Times New Roman字体等中。CSV和MySQL都不是具有任何字体概念的系统。我认为您所说的只是在导入数据时正确处理编码。为此:1)您的CSV文件采用什么编码,2)您如何准确导入它?如果您在识别需要使用的字符集时遇到问题,或者您可能在不同的行中存储不同的字符集,请使用
字符集二进制文件
加载数据而不进行任何转换。谢谢。我尝试了你的方法,但是MySQL显示了一个错误。你能再解释一下字符集二进制Gavin的用法吗?@user3661376我错了:字符集可以是
utf8
而不是
utf8\U unicode\U ci
。见编辑后的答案。