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

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


当前回答

做到这一点的唯一“简单方法”如下。首先,要意识到Excel .csv文件中显示的内容和隐藏的内容之间是有区别的。

Open an Excel file where you have the info (.xls, .xlsx) In Excel, choose "CSV (Comma Delimited) (*.csv) as the file type and save as that type. In NOTEPAD (found under "Programs" and then Accessories in Start menu), open the saved .csv file in Notepad Then choose -> Save As... and at the bottom of the "save as" box, there is a select box labelled as "Encoding". Select UTF-8 (do NOT use ANSI or you lose all accents etc). After selecting UTF-8, then save the file to a slightly different file name from the original.

该文件采用UTF-8格式,保留所有字符和重音,可以导入,例如,MySQL和其他数据库程序。

这个答案来自这个论坛。

其他回答

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

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

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

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

用记事本+

这将修复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时就已经丢失了。用另一个答案。

使用Powershell怎么样?

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

我知道这是一个老问题,但我碰巧在与OP同样的问题作斗争时遇到了这个问题。

没有发现任何提供的解决方案是可行的选择,我开始探索是否有一种方法可以只使用Excel来做到这一点。

幸运的是,我发现丢失字符的问题只发生(在我的情况下)从xlsx格式保存到csv格式。我尝试先将xlsx文件保存到xls,然后再保存到csv。它确实起作用了。

请试一试,看看对你是否有用。祝你好运。