You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LOAD DATA INFILE导入CSV遇Error Code 1300:含德语ü字符报错

解决LOAD DATA INFILE导入含德语特殊字符CSV时的Error 1300问题

Error Code: 1300本质是无效UTF-8字符字符串错误,你遇到的情况核心原因是「Workbench向导导入」和「LOAD DATA命令导入」的字符集处理逻辑不一样:

为什么之前向导能成功,现在LOAD DATA报错?

Workbench的内置导入向导会自动检测CSV文件的实际编码(比如你的文件可能是Latin1/ISO-8859-1编码,德语ü在这个编码里是单字节字符),并且自动完成编码转换后导入到你的表中(哪怕表列是UTF-8字符集)。

但LOAD DATA INFILE默认会使用当前MySQL连接的字符集(通常是UTF-8)去读取CSV文件,如果你的CSV实际不是UTF-8编码,直接读取就会把ü这类字符解析成不符合UTF-8规则的无效字节,触发1300错误——哪怕你的表列本身支持存储ü,问题出在导入时的编码解析环节,不是存储环节。

解决方法

  1. 先确认CSV文件的实际编码:用文本编辑器(比如Notepad++)打开CSV,查看文件的编码类型(比如Latin1、UTF-8、UTF-8 BOM等)。
  2. 在LOAD DATA命令中指定文件编码:
    假设你的CSV是Latin1编码,命令可以这么写:
    LOAD DATA INFILE '/path/to/your/file.csv'
    INTO TABLE your_table_name
    CHARACTER SET latin1 -- 这里指定CSV的实际编码
    FIELDS TERMINATED BY ',' ENCLOSED BY '"' -- 根据你的CSV格式调整分隔符、包围符
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES; -- 如果CSV第一行是表头,加上这句跳过
    
  3. 检查连接字符集:可以先执行这条命令查看当前连接的字符集:
    SHOW VARIABLES LIKE 'character_set_connection';
    
    如果连接字符集和CSV编码不匹配,要么修改连接字符集,要么在LOAD DATA里显式指定CHARACTER SET参数(推荐后者,更灵活)。

内容的提问来源于stack exchange,提问作者Danny O

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:45:36