c# - Asp.Net MVC 5 FileResult 总是使用 ANSI 编码下载文件
问题描述
我有这部分代码
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
解决方案
默认情况下,如果您在编码中提供不正确的文本,则每个编码都是 ANSI,它会作为 ANSI。改变用途的正确方法
Context.Response.Charset = Encoding.UTF8.WebName;
如果你想要 utf8 这样做
Encoding encoding = Encoding.UTF8;
StreamWriter writer = new StreamWriter("Encoding.html", false, encoding);
writer.WriteLine("<html><head>");
// Write charset attribute to the html file.
// The value of charset is returned by the WebName property.
writer.WriteLine("<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=" +
encoding.WebName +"\">");
writer.WriteLine("</head><body>");
writer.WriteLine("<p>" + HttpUtility.HtmlEncode(encoding.EncodingName) + "</p>");
writer.WriteLine("</body></html>");
writer.Flush();
writer.Close();
推荐阅读
- html - 将标题放在上方并居中
- reactjs - React hooks 依赖,包括它会创建一个无限循环,不包括它不会给我最新的价值
- python - 抓取警报管理器 API
- javascript - 将数据从模板传递到 django 的 views.py
- azure - Analysis Services 查询副本:仅在主副本上加载和处理单个数据模型而不从副本中删除?
- python - 遗传算法如何在不知道搜索量的情况下优化神经网络的权重?
- javascript - Javascript 暂时中断链接点击的正常行为
- javascript - VSCode Prettier Format on Save 搞乱了格式
- javascript - JavaScript querySelectorAll escaping period 标准参考
- spring - 用 TcpSendingMessageHandler 模仿 OutputStreamWriter 的行为