我有这段代码:
StringBuilder output = new StringBuilder();
output.AppendLine("Saldo a disposición: 23.15€");
[...]
System.Text.UnicodeEncoding en = new UnicodeEncoding();
byte[] byteArray = en.GetBytes(output.ToString());
MemoryStream stream = new MemoryStream(byteArray);
string filename = Guid.NewGuid().ToString("N").ToUpper() + ".csv";
stream.Flush();
stream.Seek(0, SeekOrigin.Begin);
return new FileStreamResult(stream, "application/vnd.ms-excel") { FileDownloadName = filename};
当我打开文档时,不显示符号“€”和“disposión”中的重音符号。看起来像是这样:
Saldo adisposici�n:23.15�
有人告诉我该怎么做吗?
谢谢!
答案 0 :(得分:1)
以下适用于我:
string filename = Guid.NewGuid().ToString("N").ToUpper() + ".csv";
MemoryStream stream = new MemoryStream();
StreamWriter output = new StreamWriter(stream, Encoding.UTF8, 2 << 22);
output.WriteLine("Column1,Column2");
output.WriteLine("value for column one,\"Saldo a disposición: 23.15€\"");
output.WriteLine("another row col 1,another row col 2");
output.Flush();
stream.Seek(0, SeekOrigin.Begin);
return new FileStreamResult(stream, "application/octet-stream") { FileDownloadName = filename };
似乎是编码。
http://en.wikipedia.org/wiki/Unicode http://en.wikipedia.org/wiki/UTF-8