我有一个包含阿拉伯语文本数据的大文本文件。当我尝试将其加载到MySQL表中时,我收到错误Error code 1300: invalid utf8 character string
。这是我到目前为止所尝试的:
LOAD DATA INFILE '/var/lib/mysql-files/text_file.txt'
IGNORE INTO TABLE tblTest
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
我试图忽略此错误,但它不起作用。我试过了LOCAL INFILE
,但它也没有用。我的数据库是使用DEFAULT CHAR SET UTF8
和DEFAULT COLLATE utf8_general_ci
创建的。文本文件为utf-8
编码。
我不想要包含无效utf8字符的记录。那么如何加载数据而忽略包含这些无效字符的记录呢?
提前感谢!
答案 0 :(得分:2)
顽皮角色的十六进制会有所帮助。
阅读所有文本,然后处理任何不良字符的可能方法:
阅读VARBINARY
或BLOB
类型的列。
遍历行,尝试复制到VARCHAR
或TEXT
列。
另一个计划是使用utf8mb4而不是utf8。可能是坏字符是一个表情符号或中文字符,可以在utf8mb4中工作,但不能用于utf8。
答案 1 :(得分:2)
尝试使用MySQL 5.7.14时也有这个问题。
我回到了MySQL 5.6,这个问题就消失了