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

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


当前回答

我也遇到过同样的问题,但有一个简单的解决方案。

在Excel 2016或更高版本中打开xlsx文件。 在“另存为”中选择此选项:"(CSV UTF-8(逗号分隔)*.csv)"

它工作完美,并生成一个csv文件,可以导入到任何软件。我在我的SQLITE数据库中导入了这个csv文件,它与所有unicode字符完好无损地完美工作。

其他回答

另一个我觉得有用的例子是: “数字”允许在保存为CSV时进行编码设置。

您可以在Unix下使用iconv命令(也可以在Windows上作为libiconv)。

在Excel下保存为CSV后,在命令行输入:

iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv

(记住用你的编码替换cp1250)。

工作快速和伟大的大文件,如邮政编码数据库,不能导入到GoogleDocs(400.000单元格限制)。

我使用了以下解决方案:Mac Exel 2008 >文件>另存为格式,然后在格式下使用MS_DOS逗号分隔(.csv)。完美的工作。

另一种方法是在记事本中打开UTF-8 CSV文件,它将正确显示。 然后将所有的“,”替换为制表符。 将所有这些粘贴到一个新的excel文件中。

将Excel表格保存为“Unicode Text (.txt)”。好消息是所有的国际字符都是UTF16(注意,不是UTF8)。但是,新的“*.txt”文件是TAB分隔符,而不是逗号分隔符,因此不是真正的CSV。 (可选)除非您可以使用制表符分隔的文件进行导入,否则请使用您最喜欢的文本编辑器并将制表符替换为逗号“,”。 在目标应用程序中导入*.txt文件。确保它可以接受UTF16格式。

如果UTF-16已经正确实现,并且支持非bmp代码点,那么您就可以将UTF-16文件转换为UTF-8而不会丢失信息。我把它留给你去寻找你最喜欢的方法。

我使用这个过程从Excel导入数据到Moodle。