代码之家  ›  专栏  ›  技术社区  ›  Rick Jim DeLaHunt

为什么Excel导出csv不引用单引号?

  •  -2
  • Rick Jim DeLaHunt  · 技术社区  · 7 年前

    当我将Excel中的数据导出为CSV格式时,它用双引号将一些数据封装起来。 例如。

    1. 8" 变成 "8""" . 我相信这个操作是为了让数据库理解后面的内部引用。
    2. 但单引号 8' ,它保持不变,这会在导入csv时导致问题(请参见下面的图片)。

    为什么不引用 8 进入之内 "8'" 也是吗?

    8 变成 ' 导入时,同时 “8” 会导致 8 不引用单引号会导致一些数据丢失。 enter image description here

    相关问题:
    what does quotechar mean in mysql while importing data?

    Excel adds extra quotes on CSV export

    1 回复  |  直到 7 年前
        1
  •  0
  •   Rick Jim DeLaHunt    7 年前

    经过这么多的实验,我终于找到了一个非常接近的答案。

    结论一:

    • 这是MySQL工作台的问题。它的导入向导工作不正常。我在navicat下测试每一个测试数据,navicat会处理好所有的事情。
    • 单引号可能导致意外行为。

    测试:

    默认情况下,MySQLWorkbench导入向导将第一行值作为列名,而在Navicat中,我可以对此进行配置。

    (所有测试文件都是Excel导出的csv utf8编码。)

    测试1:

    例如。: 8' _¼只有1个记录_¼,没有列名。
    enter image description here
    MySQL:弹出一些未知错误,无论您更改什么配置,都无法获取原始数据。
    纳维卡特:很好用。

    enter image description here enter image description here

    测试2:

    例如。: 8 ,只有1个记录有列名或有额外的记录没有列名
    MySQL:能够正确处理单引号。
    纳维卡特:没问题。 enter image description here enter image description here

    测试3:

    如果存在单引号, 大多数情况下 导入向导无法很好地处理双引号。

    例如:单引号数据在双引号数据之前。
    enter image description here
    MySQL:完全失败。
    纳维卡特:没问题。

    enter image description here enter image description here

    推荐文章