是否可以强制Excel自动识别UTF-8 CSV文件?

我正在开发一个应用程序的一部分,负责将一些数据导出到CSV文件中。应用程序始终使用UTF-8,因为它在所有级别都是多语言的。但在Excel中打开此类CSV文件(包含变音符号、西里尔字母、希腊字母等)并不能达到预期的结果,显示类似于Г¨/Γ¨/Γ¨,Γ–/Γ¨。我不知道如何强迫Excel理解打开的CSV文件是用UTF-8编码的。我还尝试指定UTF-8 BOMEF BB BF,但Excel忽略了这一点

有什么解决办法吗

注意:哪些工具可能会像Excel那样工作


更新

我必须说,我把这个问题的表述搞糊涂了。当我问这个问题时,我问了一种在Excel中以流畅透明的方式打开UTF-8 CSV文件的方法,用户不会遇到任何问题。但是,我使用了一个错误的公式,要求自动执行。这非常令人困惑,并且与VBA宏自动化相冲突。对于这个问题,我最欣赏两个答案:亚历克斯的第一个答案https://stackoverflow.com/a/6002338/166589,我接受了这个答案;第二个是马克写的https://stackoverflow.com/a/6488070/166589 这是稍晚出现的。从可用性的角度来看,Excel似乎缺乏一个好的用户友好的UTF-8CSV支持,所以我认为两个答案都是正确的,并且我首先接受了亚历克斯的答案,因为它确实说明Excel不能透明地做到这一点。这就是我在这里自动混淆的。Mark的回答为更高级的用户提供了一种更复杂的方式来实现预期的结果。两个答案都很好,但Alex的答案更适合我没有明确说明的问题


更新2

上次编辑五个月后,我注意到Alex的答案不知什么原因消失了。我真的希望这不是一个技术问题,我也希望现在不再讨论哪个答案更好。所以我接受马克的答案,认为这是最好的答案

Alex是正确的,但由于您必须导出到csv,您可以在打开csv文件时向用户提供以下建议:

  1. 将导出的文件另存为csv
  2. 打开Excel
  3. 使用数据–>导入外部数据–>导入数据导入数据
  4. 选择“csv”文件类型并浏览到您的文件
  5. 在导入向导中,将文件源更改为“65001 UTF”(或选择正确的语言字符标识符)
  6. 将分隔符更改为逗号
  7. 选择导入到的位置并完成

这样特殊字符就可以正确显示

发表评论