我有一个Excel文件,其中有一些西班牙字符(波浪号等),我需要将其转换为CSV文件作为导入文件使用。然而,当我将另存为CSV时,它会破坏不是ASCII字符的“特殊”西班牙字符。它似乎也这样做的左右引号和长破折号,似乎是来自最初的用户在Mac中创建Excel文件。

由于CSV只是一个文本文件,我确信它可以处理UTF8编码,所以我猜这是Excel的限制,但我正在寻找一种方法,从Excel到CSV,并保持非ascii字符完整。


当前回答

“nevets1219”是正确的谷歌文档,然而,如果你只是“导入”文件,它通常不会将其转换为UTF-8。

但是如果您将CSV导入到现有的谷歌电子表格中,它会转换为UTF-8。

下面是一个食谱:

在主文档(或驱动器)屏幕上点击“创建”按钮并选择“电子表格” 在“文件”菜单中选择“导入” 按“选择档案” 选择“替换电子表格” 选择要用作分隔符的字符 点击“导入” 从“文件”菜单选择“下载为”-> CSV(当前文件)

生成的文件将是UTF-8格式的

其他回答

对于那些寻找完全程序化(或者至少是服务器端)解决方案的人来说,我使用catdoc的xls2csv工具取得了巨大的成功。

安装catdoc:

apt-get install catdoc

进行转换:

xls2csv -d utf-8 file.xls > file-utf-8.csv 

这是非常快的。

请注意,包含-d utf-8标志非常重要,否则它将以默认的cp1252编码方式对输出进行编码,并且您将面临丢失信息的风险。

注意,xls2csv也只适用于.xls文件,它不适用于.xlsx文件。

我也有同样的问题,遇到了这个添加,它在excel 2013中工作得很好,除了excel 2007和2010,它是提到的。

Microsoft Excel提供了一个使用Unicode编码导出电子表格的选项。请看下面的截图。

看起来很有趣,我发现将180MB的电子表格保存到UTF8 CSV文件中最简单的方法是将单元格选择到Excel中,复制它们,并将剪贴板的内容粘贴到SublimeText中。

在Excel 2016及更高版本(包括Office 365)中,有一个专门用于UTF-8格式的CSV选项。

在Office 365中,选择另存为;以前人们可能会选择CSV(逗号分隔),现在你可以保存为CSV UTF-8(逗号分隔)(*.csv)