【问题标题】:mysql table import wizard fails to import a csv filemysql 表导入向导无法导入 csv 文件
【发布时间】: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。

标签: mysql csv encoding import


【解决方案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 包含几个错误:

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

              【讨论】:

                【解决方案10】:

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

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

                【讨论】:

                  猜你喜欢
                  • 2019-03-18
                  • 2016-06-05
                  • 2013-02-05
                  • 2021-05-16
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-02-26
                  相关资源
                  最近更新 更多