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

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


当前回答

使用Powershell怎么样?

Get-Content 'C:\my.csv' | Out-File 'C:\my_utf8.csv' -Encoding UTF8

其他回答

简单的方法: 不需要Open office和谷歌文档

Save your file as "Unicode text file"; now you have an unicode text file open it with "notepad" and "Save as" it with selecting "utf-8" or other code page that you want rename file extension from "txt" to "csv". This will result in a tab-delimited UTF-8 csv file. If you want a comma-delimited file, open the csv file you just renamed and replace all tabs with commas. To do this in Notepad on Win 10, simply select one tab field then click Ctrl+H. In the window that opens, type a comma , in the "Replace with" field then click "Replace All". Save your file. The result will be a comma-delimited UTF-8 csv file.

不管怎样,不要用ms office打开它!! 现在您有了一个以制表符分隔的CSV文件。 或者,如果应用步骤5,则使用逗号分隔。

我发现OpenOffice的电子表格应用程序Calc非常擅长处理CSV数据。

在“另存为…”对话框中,单击“格式选项”可获得CSV的不同编码。LibreOffice的工作原理与AFAIK相同。

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

Excel通常将csv文件保存为ANSI编码,而不是utf8编码。

更正文件的一个选项是使用Notepad或notepad++:

使用Notepad或notepad++打开.csv文件。 复制内容到你的电脑剪贴板。 从文件中删除内容。 将文件的编码更改为utf8。 将剪贴板上的内容粘贴回来。 保存文件。

我无法在Mac Excel上找到这个问题的VBA解决方案。似乎根本没有办法输出UTF-8文本。

所以我最终不得不放弃VBA,咬紧牙关,学习了AppleScript。情况远没有我想的那么糟。

解决方案如下: http://talesoftech.blogspot.com/2011/05/excel-on-mac-goodbye-vba-hello.html