我正在开发应用程序的一部分,该应用程序负责将一些数据导出到CSV文件中。该应用程序始终使用UTF-8,因为它在所有级别上都具有多语言的性质。但是,在Excel中打开此类CSV文件(例如包含变音符号,西里尔字母,希腊字母)并不能达到预期的结果,例如Г„/Г¤, Г–/Г¶
。而且我不知道如何强制Excel理解打开的CSV文件是以UTF-8编码的。我也尝试指定UTF-8 BOM EF BB BF
,但是Excel忽略了这一点。
有什么解决方法吗?
PS哪些工具的行为可能类似于Excel?
更新
我不得不说,我已经使社区与问题的表达混淆了。当我问这个问题时,我想以一种流畅,透明的方式在Excel中打开一个UTF-8 CSV文件而对用户没有任何问题的方法。但是,我使用了错误的表述,要求自动执行。这非常令人困惑,并且与VBA宏自动化冲突。对于这个问题,有两个答案是我最感激的:Alex的第一个答案https://stackoverflow.com/a/6002338/166589,我已经接受了这个答案;第二个是Mark https://stackoverflow.com/a/6488070/166589后来出现了。从可用性的角度来看,Excel似乎缺乏对用户友好的UTF-8 CSV的良好支持,因此我认为这两个答案都是正确的,并且我首先接受了Alex的答案,因为它确实表明Excel无法做到这一点。透明地 这就是我在这里自动感到困惑的地方。马克的答案为更高级的用户提供了一种更复杂的方式来达到预期的结果。两种答案都很好,但亚历克斯的答案更适合我未明确说明的问题。
更新2
在上次编辑五个月后,我注意到亚历克斯的答案由于某种原因而消失了。我真的希望这不是技术问题,并且希望现在不再讨论哪个答案更大。因此,我接受马克的回答为最佳答案。
\t
作为分隔符的UTF-16LE 。适用于英语和非英语Excel设置。可以按Ctrl-S
而无需选择文件格式,等等。将保留Unicode字符。