MySQL Workbench导入CSV遇ERROR 1300:utf8mb4字符无效求解决方案
解决MySQL导入CSV时的utf8mb4字符错误问题
方案1:在导入命令中指定文件编码
报错本质是CSV文件的编码与MySQL表的字符集不兼容,或者导入时未明确指定文件编码。直接在LOAD DATA命令里添加CHARACTER SET参数即可:
load data local infile 'F:/Data Analysis/Data-Analysis-Project/Global_SuperShop_Project/Global_Store.csv' into table global_store character set utf8mb4 -- 或根据实际文件编码调整为utf8 fields terminated by ',' enclosed by '"' lines terminated by '\n' ignore 1 rows;
先确认目标表global_store的字符集是否支持Unicode字符:
SHOW CREATE TABLE global_store;
如果表使用latin1这类窄字符集,先修改表的字符集:
ALTER TABLE global_store CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
utf8mb4是MySQL对完整UTF-8的支持,比默认的utf8(实际为utf8mb3)能容纳更多特殊字符,比如带重音的ú。
方案2:用Excel转换CSV文件编码
如果不想修改MySQL命令,直接用Excel重新导出CSV为UTF-8编码:
- 打开原CSV文件(打开时若乱码,选择「UTF-8」编码打开)
- 点击「文件」→「另存为」,保存类型选「CSV(逗号分隔)(*.csv)」
- 点击「工具」→「Web选项」→「编码」,选择「UTF-8」后保存
- 用新保存的文件重新执行导入命令
方案3:批量替换特殊字符(不推荐)
如果只是临时跳过错误,可在导入时用REPLACE处理字段,但这会丢失原始特殊字符,不建议用于需要保留数据准确性的场景:
load data local infile 'F:/Data Analysis/Data-Analysis-Project/Global_SuperShop_Project/Global_Store.csv' into table global_store character set utf8mb4 fields terminated by ',' enclosed by '"' lines terminated by '\n' ignore 1 rows -- 假设第三列是出错列,用@var3临时接收,替换后存入字段 (column1, column2, @var3, column4) set column3 = REPLACE(@var3, 'ú', 'u');
内容的提问来源于stack exchange,提问作者Emon Rahman
相关产品推荐
相关产品推荐

