从Excel到MySQL的CSV文件字符编码

从Excel到MySQL的CSV文件字符编码,mysql,csv,encoding,Mysql,Csv,Encoding,我有一个MySQL表,它由本地文件夹中的CSV输入填充。我通过将Excel工作表导出为.txt格式来创建CSV,添加逗号分隔符,并将编码更改为UTF-8,因为之前插入直接从Excel导出的CSV时出错 问题是:是否可以跳过手动将导出的CSV文件更改为TXT并将其编码为UTF-8文件的步骤?我的目标是直接从Excel导出UTF-8 CSV,或者使用脚本将其导出到文件夹中 谢谢你的回答。这个可能是的副本,你可以在那里检查,拼凑出一个答案 不过,我不确定任何答案是否真的给出了解决问题的权威/简洁的编程

我有一个MySQL表,它由本地文件夹中的CSV输入填充。我通过将Excel工作表导出为.txt格式来创建CSV,添加逗号分隔符,并将编码更改为UTF-8,因为之前插入直接从Excel导出的CSV时出错

问题是:是否可以跳过手动将导出的CSV文件更改为TXT并将其编码为UTF-8文件的步骤?我的目标是直接从Excel导出UTF-8 CSV,或者使用脚本将其导出到文件夹中


谢谢你的回答。

这个可能是的副本,你可以在那里检查,拼凑出一个答案

不过,我不确定任何答案是否真的给出了解决问题的权威/简洁的编程方法。如果使用VBA是一种选择,请查看这篇文章,它提供了一个非常完整的解决方案:

如果没有,您可以详细说明塞巴斯蒂安·戈德莱特(Sebastian Godelet)在评论中暗示的解决方案(请查看上面的SO链接!)。我将在脚本中遵循以下步骤:

  • 导出到txt
  • 使用iconv从utf-16转换为utf-8
  • 使用sed将制表符转换为逗号
  • 我找不到1的非VBA、非GUI解决方案,但2和3可以通过简单的操作完成

    iconv -f utf-16 -t utf-8 file.txt | sed $'s/\t/  /' newfile.txt
    
    其中,$是解释制表符的bash方法(如果使用另一个shell,则可能有另一种方法正确解释字符串)。对于1,如果导出为txt,则可以直接从excel导出为utf-16 txt,然后对文件夹中的每个文件运行该命令