如何解决Table Data Import Wizard导入CSV到Workbench的ASCII解码错误
报错核心原因是MySQL Workbench的导入向导默认用ASCII编码解析文件,即便你修改了文件本身的编码,只要向导端没有匹配对应编码,就会触发解码失败报错,0xc3是UTF-8编码下西欧重音字符、中文等多字节字符的常见起始字节。
解决方案
方法1:修改导入向导的编码配置(优先尝试)
不需要修改原文件,直接调整向导参数即可:
- 打开Table Data Import Wizard,选择要导入的CSV文件后点击下一步进入配置页
- 找到Encoding下拉选项,不要使用默认的
cp1252或ascii,手动选择和文件编码匹配的选项:含中文选gbk,含西欧特殊字符选latin-1,通用选utf-8 - 后续按正常流程配置字段映射、执行导入即可
方法2:用LOAD DATA SQL命令替代向导导入
如果向导的编码选项仍不生效,直接通过SQL命令自定义编码规则导入,参考代码如下,可根据实际场景调整参数:
-- 先开启本地文件导入权限 SET GLOBAL local_infile = 1; LOAD DATA LOCAL INFILE '你的CSV文件绝对路径' INTO TABLE 你的目标表名 CHARACTER SET utf8mb4 -- 可替换为utf8、gbk、latin1匹配你的文件编码 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' -- Windows生成的CSV用\r\n,Mac/Linux生成的用\n IGNORE 1 ROWS; -- 若CSV第一行是表头,加这行跳过表头
方法3:脚本批量修复文件异常编码
如果前两种方案都不生效,无需手动修改单元格,用Python脚本一键扫描修复异常字符即可:
import pandas as pd # 读取文件时自动替换无法识别的异常编码字符 df = pd.read_csv('原CSV文件路径', encoding_errors='replace') # 导出为标准UTF-8编码的新文件 df.to_csv('修复后CSV文件路径.csv', encoding='utf-8', index=False)
生成的新文件不会丢失有效数据,仅会把无法识别的异常字符替换为�,后续可单独排查处理这部分内容即可。
内容的提问来源于stack exchange,提问作者Darryl Chia
相关产品推荐
相关产品推荐

