我有一个包含阿拉伯文本数据的大文本文件。当我尝试将其加载到 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
and DEFAULT COLLATE utf8_general_ci
。文本文件是utf-8
编码。
我不想要包含无效 utf8 字符的记录。那么我如何加载数据并忽略包含此类无效字符的记录呢?
预先感谢!
拥有顽皮角色的十六进制会有所帮助。
读取所有文本,然后处理任何不良字符的可能方法:
读入 type 的列VARBINARY
or BLOB
.
循环遍历行,尝试复制到VARCHAR
or TEXT
column.
另一个计划是使用 utf8mb4 而不是 utf8。错误字符可能是可以在 utf8mb4 中使用的表情符号或中文字符,但不能在 utf8 中使用。
忽略错误
This may让你忽略错误:
SET @save := @@sql_mode;
LOAD DATA ...;
SET @@sql_mode := @save;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)