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 中的所有列