Asp.Net MVC 5 FileResult始终以ANSI编码下载文件

时间:2019-07-18 10:20:50

标签: c# encoding asp.net-mvc-5 fileresult

我有这部分代码

Response.Charset = _encodingcode;
Response.AddHeader("Content-Encoding", _encodingcode);
Response.HeaderEncoding = Encoding.GetEncoding(_encodingcode);
Response.ContentEncoding = Encoding.GetEncoding(_encodingcode);
Response.ContentType = mimeType;                     

return File(_filedata, mimeType, $"{id}{_extension}");

但总是在下载文件时,记事本的编码为ANSI

2 个答案:

答案 0 :(得分:1)

如果您在编码中提供了不正确的文本,默认情况下每种编码都是ANSI。 正确使用方式的改变

Context.Response.Charset = Encoding.UTF8.WebName;

答案 1 :(得分:0)

记事本仅接收_filedata字节,这些字节以第3个参数中指定的名称作为文件保存到磁盘中,但mimeType或响应标头或正文中的任何元素均不保存,因此指定编码无效。

通过在字节流的开头添加字节顺序标记(BOM),可以向记事本提示一些编码:

  • 对于UTF-8-0xEF,0xBB,0xBF
  • 对于UTF-16 / 32-0xFF,0xFE

除此之外,无法告诉记事本应使用哪种编码。