我有一个Excel文件,其中有一些西班牙字符(波浪号等),我需要将其转换为CSV文件作为导入文件使用。然而,当我将另存为CSV时,它会破坏不是ASCII字符的“特殊”西班牙字符。它似乎也这样做的左右引号和长破折号,似乎是来自最初的用户在Mac中创建Excel文件。
由于CSV只是一个文本文件,我确信它可以处理UTF8编码,所以我猜这是Excel的限制,但我正在寻找一种方法,从Excel到CSV,并保持非ascii字符完整。
我有一个Excel文件,其中有一些西班牙字符(波浪号等),我需要将其转换为CSV文件作为导入文件使用。然而,当我将另存为CSV时,它会破坏不是ASCII字符的“特殊”西班牙字符。它似乎也这样做的左右引号和长破折号,似乎是来自最初的用户在Mac中创建Excel文件。
由于CSV只是一个文本文件,我确信它可以处理UTF8编码,所以我猜这是Excel的限制,但我正在寻找一种方法,从Excel到CSV,并保持非ascii字符完整。
当前回答
您可以在Unix下使用iconv命令(也可以在Windows上作为libiconv)。
在Excel下保存为CSV后,在命令行输入:
iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv
(记住用你的编码替换cp1250)。
工作快速和伟大的大文件,如邮政编码数据库,不能导入到GoogleDocs(400.000单元格限制)。
其他回答
使用Powershell怎么样?
Get-Content 'C:\my.csv' | Out-File 'C:\my_utf8.csv' -Encoding UTF8
用记事本+
这将修复Excel保存的损坏的CSV文件,并以适当的编码重新保存它。
从Excel导出CSV 加载到notepad++ 解决编码 保存
Excel保存在CP-1252 / Windows-1252中。在notepad++中打开CSV文件。选择
Encoding > Character Sets > Western European > Windows-1252
Then
Encoding > Convert to UTF-8
File > Save
首先告诉notepad++编码,然后转换。有些其他答案在转换时没有先设置正确的编码,这会使文件更加混乱。他们会把原本应该是“達”的东西变成“達”。如果您的字符不符合CP-1252,那么它在保存为CSV时就已经丢失了。用另一个答案。
保存对话框>工具按钮> Web选项>编码选项卡
在Excel 2016及更高版本(包括Office 365)中,有一个专门用于UTF-8格式的CSV选项。
在Office 365中,选择另存为;以前人们可能会选择CSV(逗号分隔),现在你可以保存为CSV UTF-8(逗号分隔)(*.csv)
我使用了以下解决方案:Mac Exel 2008 >文件>另存为格式,然后在格式下使用MS_DOS逗号分隔(.csv)。完美的工作。