【发布时间】:2016-12-16 17:18:36
【问题描述】:
我有以下用于导出 csv 文件的控制器操作
public ActionResult ExportExcel(int projectId)
{
var risks = new RiskRepository().GetRisksByProjectId(projectId);
var commaDelimmeted =
risks.Select(
r => r.RiskDescription + "," + r.RiskTypeId.ToString() + "," + r.Likelihood.ToString() + "," + r.Impact + "," + r.Action + "," + r.ActionBy + ",")
.ToList();
string data = commaDelimmeted.Aggregate(string.Empty, (current, line) => current + line + Environment.NewLine);
Response.ClearContent();
Response.Buffer = true;
// set the header
var aliasName = "someFile.csv";
Response.AddHeader("content-disposition", "attachment; filename=" + aliasName);
Response.ContentType = "application/csv";
Response.Charset = "";
Response.ContentEncoding = Encoding.UTF8;
Response.Output.Write(data);
Response.Flush();
Response.End();
return File(Response.OutputStream, "application/csv");
}
输出的csv文件没有正确显示从右到左的语言字符,所以我设置了响应内容编码头问题仍然存在。
有什么想法吗?
编辑:在 this 帖子中查看 Darin 的解决方案并没有解决我的问题,输出在 csv 输出文件中显示 System.Byte[]。
【问题讨论】:
标签: c# asp.net-mvc csv character-encoding