MySQL错误代码:1300。无效的utf8字符串:'';与'\';unicode字符前面

MySQL错误代码:1300。无效的utf8字符串:'';与'\';unicode字符前面,mysql,utf-8,bulkinsert,Mysql,Utf 8,Bulkinsert,我有一堆csv文件,我遇到了一个例子,奇怪的是,utf8在unicode字符前面 Tom;\Éscobar;123 当通过以下方式进行批量插入时: LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE TEST_TABLE CHARACTER SET 'utf8' FIELDS TERMINATED BY ';' ENCLOSED BY '"'; 错误:抛出无效的utf8字符串:“”。 我想知道这是MySQL加载数据中的一个bug,还是我在这里遗漏了什么

我有一堆csv文件,我遇到了一个例子,奇怪的是,utf8在unicode字符前面

Tom;\Éscobar;123
当通过以下方式进行批量插入时:

LOAD DATA LOCAL INFILE 'test.csv'
INTO TABLE TEST_TABLE
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ';'
ENCLOSED BY '"';
错误:抛出无效的utf8字符串:“”。 我想知道这是MySQL加载数据中的一个bug,还是我在这里遗漏了什么

MySQL-Version 5.7.16

如果你能弄清楚模式是什么

  • 将CSV加载到
    VARBINARY
    BLOB
    列中
  • 运行SQL,可能使用
    REPLACE()
    函数`,以清除数据(删除黑色斜杠)
  • 执行适当的
    更改
    ,可能是
    修改列。。。VARCHAR(…)字符集utf8mb4
    以将其转换为文本格式

  • 听起来文件的编码不正确。你能得到那条线的十六进制数吗?原来的线是:\朱坤 在十六进制中为5c67315764。我可以用任何组合\+[一些unicode字符]复制它。该文件以utf8Hmmm编码。。。无
    字符集
    5c67315764
    视为
    \朱坤。utf8十六进制表示
    朱坤
    E69CB1 E59DA4
    (没有空格)对不起,我的错。十六进制转储为
    5c e69cb1 e59da4
    。我没有看到任何异常。你…吗?