使用分号分隔符以UTF-8导出.csv

时间:2015-09-22 14:45:07

标签: c# asp.net excel csv utf-8

我尝试以分号作为分隔符字符导出为UTF-8编码的.csv文件:

context.Response.Clear();
context.Response.ClearHeaders();
context.Response.ClearContent(); 
context.Response.AppendHeader("content-disposition", string.Format("attachment; filename={0}", GetFileName(...)));
context.Response.ContentType = "Application/csv";
var encoding = Encoding.UTF8;
context.Response.ContentEncoding = encoding;
context.Response.BinaryWrite(encoding.GetPreamble());
context.Response.Output.Write("sep=;");  // tell Excel to interpret semicolon as separator
//csv file content creation here (using context.Response.Output.WriteLine)
context.Response.Flush();
context.Response.End();

问题在于行:

context.Response.BinaryWrite(encoding.GetPreamble());
context.Response.Output.Write("sep=;");

不能一起正常工作:

enter image description here

只使用第一行我可以解决编码问题,当Excel显示像ÐÐ'ОÐÐ这样的Unicode字符时。但如果没有第二行,Excel将显示第一列中的所有数据。

您能否帮我理解如何强制Excel使用UTF-8编码和;作为分隔符?

0 个答案:

没有答案