用于导入MySQL的csv文件的utf8mb4编码

时间:2016-12-31 16:53:50

标签: php csv phpmyadmin utf8mb4 mysql-5.7

我成功设置了我的Ubuntu 16.04 LTS LAMPS服务器,以便MySQL 5.7现在完全支持utf8mb4字符集。亚洲和法国字符集可以直接输入数据库前端XATAFace,没有任何问题。

当我使用phpmyadmin管理前端将csv文件导入MySQL时,我现在使用法语语言字符制作的csv文件未被导入,抛出了熟悉的mysql导入错误:

  

1366字符串值不正确:列的'\ xE9ciali ...'。 。 。

我猜一个可以编码csv文件的文本编辑器,因为需要utf8mb4;如果这是错的,请纠正我。 Windows平台上是否有文本编辑器允许将csv文件编码为utf8mb4,以便我可以成功将csvs导入MySQL?

任何想法如何克服这个csv导入障碍?

先谢谢Mark,Saginaw Michigan

2 个答案:

答案 0 :(得分:3)

utf8mb4只是任何其他程序的UTF-8。

标准的UTF-8是每个字符最多 4字节(每个字节是8 ),但由于某种原因,MySQL UTF -8每个字符最多3个字节,因此无法显示完整的UTF-8字符集。因此mb4;当人们向MySQL抱怨这个wyrd概念时,他们将 UTF-8 multibyte 4 设置为完整的UTF-8字符集。

Microsoft产品存在各种问题,无法将CSV文件正确编码为UTF-8;并且无法正确导入UTF-8 CSV文件。

您还可以阅读similar questions,了解如何让PHPMyAdmin正确导入CSV文件。

您的问题可能有far too many个原因,但在第一次开始时,我会说使用NotePad++OpenOffice(免费)这样的程序可以与CSV一致地工作文件,然后获取原始数据并将其保存为UTF-8或其他所有包含的字符集,如Windows-1252。

This topicthis topic对于一般的UTF-8和网络问题也是一个非常有用的开场白。

此外,可能需要在您的UTF-8 CSV文件中添加字节顺序标记(这是上面引用的Microsoft Excel问题的原因)。 This answer有助于此。您还可以read here获取有关使用BOM的更多信息。

祝你好运。

答案 1 :(得分:1)

如果这是您拥有的典型数据,请使用latin1而不是utf8进行连接。 MySQL将转换为为列定义的CHARACTER SET。如果您使用LOAD DATA(用于导入.csv文件),则有一个用于建立 CHARACTER SET的子句。