mysql 表导入向导无法导入 csv 文件

Posted

技术标签:

【中文标题】mysql 表导入向导无法导入 csv 文件【英文标题】:mysql table import wizard fails to import a csv file 【发布时间】:2016-03-25 23:31:19 【问题描述】:

我正在尝试导入由 notepad++ 创建的 csv 文件(Window 10),使用分号作为分隔符,扩展名为 .csv。

我使用mysql Workbench 6.3,导入向导。 notepad++中的编码是UTF-8,我要加载的mysql表是utf-8默认排序规则

导入向导无法导入并显示两条消息: 表数据导入:无法分析文件,请尝试更改编码类型。如果这没有帮助,也许文件不是:csv,或者文件是空的

未处理的异常:'ascii' 编解码器无法在位置 1 编码字符 u'\xfa':序数不在范围内 (128)

如何跟踪此错误。我为该文件尝试了几种编码,但错误仍然存​​在。

谢谢

【问题讨论】:

您期待ú 吗?这就是 fa 在 latin1 中的含义。和 Unicode 00FA。有些东西在说(或默认为)latin1 而不是 utf8。 【参考方案1】:

当您使用“另存为”选项保存 Excel 数据时,请选择 msdos .csv 格式。请注意,其中有 3 种 csv 格式,仅选择 MS-DOS .csv 如图中突出显示。

【讨论】:

【参考方案2】:

在 SQL 结果中使用导入按钮工具。看图

【讨论】:

【参考方案3】:

我尝试了所有 CSV 格式,但都没有成功。最后我发现选择这个选项对保存为CSV (MS-DOS) (*.csv)的文件有效:

【讨论】:

【参考方案4】:

无论使用什么分隔符,都可以尝试使用 libreoffice calc 或 ms-office excel 创建 csv 文件。确保将编码设置为 UTF-8。 IT 将为您服务。

【讨论】:

谢谢,我用excel导出了一个csv utf-8文件。导入过程不断失败 "失败" = 中止?截断?垃圾字符?问号?什么都没有?【参考方案5】:

如果有人发现像我这样需要解决方案:

https://help.surveygizmo.com/help/encode-an-excel-file-to-utf-8-or-utf-16

这说明了如何使用正确的编码保存文件。

【讨论】:

【参考方案6】:

我找到了这个解决方案,它对我有用

问题在于 UTF-8 编码

在excel中有时保存时通常会失败,可以使用Google Drive。

1.- 创建驱动器电子表格

2.- 导入您的 .csv 文档

3.- 转到文件-> 下载为-> csv

就是这样,它应该可以工作,因为它被编码回 utf-8。

【讨论】:

尽管这不是一个很好的过程并且并不能真正确定问题,但这是在我的情况下唯一有效的方法。【参考方案7】:

就我而言,我的表格中有一些重音符号,这就是它给我这个错误的原因。我解决了这个用记事本替换字符的问题(因为我认为有口音不是一个好习惯),然后我可以毫无问题地导入表格。

【讨论】:

【参考方案8】:

我正在使用 Hibernate 并且遇到了类似的问题。就我而言,我设置了错误的变量类型。然后我将原始 excel 文件转换为 csv 并选择 utf-8 => 0 导入。

感谢其他人的建议,我更改了该变量的类型,然后将原始 excel 文件保存为 CSV(MS-Dos) 并选择了 cp1250(windows-1250)。效果很好。

【讨论】:

【参考方案9】:

你可以发现错误日志在%appdata%\Mysql\Workbench\log\wb.log

在我发现 Workbench 包含几个错误:

    它无法处理文本文件中的 BOM(字节顺序标记)。在您编写时,您正在使用 Notepad++,您很幸运,因为它允许通过多种方式将文件编码到 BOM 中或排除 BOM 由于它不了解 BOM,因此无法确定您的文件是 utf-8 还是 ansi,因此我假设 Windows 下的 WB 需要一个 ANSI 文件。再次使用 Notepad++ 准备数据时,您很幸运,因为您可以先将文件转换为 ANSI。

【讨论】:

【参考方案10】:

当我尝试导入包含双引号和换行符的字段时遇到此错误。根据 RFC,双引号被正确地转义为另一个双引号。换行符不会中断导入,转义的双引号不会中断导入,但是将两者结合起来会。

据我所知,这是 MySQL Workbench 中的一个错误。

【讨论】:

以上是关于mysql 表导入向导无法导入 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 phpmyadmin 向导将 csv 导入 mysql 数据库

为啥 MySQL Workbench 表数据导入向导会导入 0 条记录?

MySQL Workbench 数据导入向导未显示 CSV 中的所有列

您如何解决以下错误?我正在尝试使用数据表导入向导将 csv 文件加载到 Workbench

使用导入向导导入 CSV 时 MYSQL 崩溃

MySQL工作台表数据导入向导极慢