2017-05-31 71 views
0

我有一堆的CSV文件,我碰到哪里很奇怪的情况下,来到”字符例如MySQL的错误代码:1300 UTF8无效的字符串:“”与“ ” UTF8 Unicode中的前“Unicode字符的盈

Tom;\Éscobar;123 

和通过做一个大容量插入时:

LOAD DATA LOCAL INFILE 'test.csv' 
INTO TABLE TEST_TABLE 
CHARACTER SET 'utf8' 
FIELDS TERMINATED BY ';' 
ENCLOSED BY '"'; 

错误:无效UTF8字符串: '' 被抛出。 我不知道这是MySQL LOAD DATA中的一个错误,还是我在这里丢失了一些东西。

MySQL-Version 5.7.16 
+0

这听起来像文件的编码错误。你能得到该行的十六进制吗? –

+0

原始的行是:\朱坤在十六进制它的5c67315764。我可以用任何组合\ + [某个unicode字符]重现它。该文件是在UTF8编码 –

+0

嗯......没有'CHARACTER SET'对待'5c67315764'为'\'朱坤。 –

回答

0

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

  1. 负载CSV到VARBINARYBLOB列(S)。
  2. 运行SQL,可能使用了REPLACE() function`,以清理数据(除去blackslashes)。
  3. 做合适的ALTER,大概MODIFY COLUMN ... VARCHAR(...) CHARACTER SET utf8mb4把它转换为文本格式。
相关问题