加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC:返回FileResult时如何设置编码

发布时间:2020-12-16 03:35:11 所属栏目:asp.Net 来源:网络整理
导读:在我的控制器中,我有以下内容将存储在CS HTML文件中的 HTML片段发送到前面. public FileResult htmlSnippet(string fileName) { string contentType = "text/html"; return new FilePathResult(fileName,contentType); } fileName如下所示: /file/abc.cshtm
在我的控制器中,我有以下内容将存储在CS HTML文件中的 HTML片段发送到前面.

public FileResult htmlSnippet(string fileName)
    {
        string contentType = "text/html";
        return new FilePathResult(fileName,contentType);
    }

fileName如下所示:

/file/abc.cshtml

现在让我感到困扰的是,这些HTML代码段文件具有西班牙语字符,当它们显示在页面中时看起来不正确.

感谢致敬.

解决方法

首先确保您的文件是UTF-8编码的:

检查this讨论.

如何设置响应的编码:

我想你可以这样做:

public FileResult htmlSnippet(string fileName)
    {
        string contentType = "text/html";
        var fileResult = new FilePathResult(fileName,contentType);
        Response.Charset = "utf-8"; // or other encoding
        return fileResult;
    }

其他选项是创建Filter属性,然后您可以使用此属性标记单独的控制器或操作(或将其添加到全局过滤器):

public class CharsetAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        filterContext.HttpContext.Response.Headers["Content-Type"] += ";charset=utf-8";
    }
}

如果您想为所有HTTP响应设置编码,您也可以尝试在web.config中设置编码.

<configuration>
  <system.web>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
  </system.web>
</configuration>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读