MySQL从txt导入 - 字符集

时间:2016-12-07 18:40:00

标签: mysql file-io utf-8 phpmyadmin character

我尝试通过PhpmyAdmin将数据从txt文件导入我的数据库。 在我使用的查询下面。导入有效,但查询会在每个字符后添加替换标记,例如"输入1"字符串上传为"�I�n�p�u�t�1" (在任何帖子中都找不到这种行为)。

问题是我不知道txt文件的字符集。试过UTF8mb4 / 16/32,UCS2,ascii,big5 - 没有成功。 如果我手动将txt保存为UTF-8或CSV,则上传工作正常。我打算将它与Cronjob链接以进行自动程序,因此手动调整不是解决方案。

这是我的代码:

从TEST_2删除1以后; LOAD DATA INFILE' / share /.../导入SQL / A01.txt' 替换表TEST_2 字符集UTF8 FIELDS终止于&#39 ;;' IGNORE 1 LINES

感谢您阅读本文 - 任何人的想法?

2 个答案:

答案 0 :(得分:0)

由于源似乎是在charset ucs2:

 LOAD DATA INFILE '/share/.../Import SQL/A01.txt'  -- ok as is
     REPLACE INTO TABLE TEST_2
     CHARACTER SET ucs2                            -- note
     FIELDS TERMINATED BY CONVERT(';' USING ucs2)  -- note
     IGNORE 1 LINES;

转换;假设它也是ucs2编码的。

答案 1 :(得分:0)

感谢您的支持,遗憾的是上述任何一项都不适合我。

我现在以不同的方式解决了这个问题,在运行上传查询之前自动将txt文件转换为utf8。不幸的是,还有一个额外的步骤,但我发现了唯一的解决方案,因为SQL中的“CHARACTER SET”没有提供可行的解决方案。

Cronjob通过mySQLi从转换后的文件中上传数据。