【发布时间】:2018-07-26 00:30:07
【问题描述】:
当使用 C# 生成 CSV 文件并在 Microsoft Excel 中打开时,它会在特殊符号之前显示 Â 字符,例如英镑
在 Notepad++ 中, 的十六进制值为:C2
所以在将 £ 符号写入文件之前,我尝试了以下操作...
var test = "£200.00";
var replaced = test.Replace("\xC2", " ");
StreamWriter outputFile = File.CreateText("testoutput.csv"); // default UTF-8
outputFile.WriteLine(replaced);
outputFile.Close();
在 Excel 中打开 CSV 文件时,我仍然看到 £ 符号前的“”字符(相当于十六进制 \xC2 \xA3);没什么区别。
我需要使用不同的编码吗?还是我错过了什么?
【问题讨论】:
-
你读过这个问题了吗:stackoverflow.com/q/6002256/5311735?
-
谢谢@Evk。不幸的是,那个特定的帖子没有回答这个问题,因为我无法控制客户端的 Excel 配置。 CSV 也是使用 .NET 代码生成的。我想解析 CSV 输出,以便它可以在任何机器上运行。
-
嗯,这个问题有很多答案,接受的一个实际上根本没有答案,所以看看其他的。
-
感谢@Evk,我正在查看每条建议,如果找到解决方案,我会更新帖子
-
您可能需要提及您所针对的 Excel 版本。有些人有一些真的旧版本。