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

c# – NancyFx:将默认字符集设置为utf8

发布时间:2020-12-15 08:15:03 所属栏目:百科 来源:网络整理
导读:我在我的cshtml文件中有这个片段: Expires on: @Model.EndDate.ToString("MMM dd yyyy") 我在回复中得到了这个: HTTP/1.1 200 OKContent-Type: text/html...Expires on: ?????? 05 2013 如何告诉Nancy默认使用UTF8进行响应? 编辑:为了澄清,这不是一个本
我在我的cshtml文件中有这个片段:
Expires on: @Model.EndDate.ToString("MMM dd yyyy")

我在回复中得到了这个:

HTTP/1.1 200 OK
Content-Type: text/html

...
Expires on: ?????? 05 2013

如何告诉Nancy默认使用UTF8进行响应?

编辑:为了澄清,这不是一个本地化问题,输出已经本地化 – 只是本地化的UTF8字符串被发送到没有UTF8字符集声明的客户端,所以它被搞砸,试图将其视为latin1 .

我要找的是这个:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8

...

而且我不想单独为每个响应指定它.

我正在使用NancyFx Web框架

解决方法

如果要在模块的响应中指定UTF8 charset声明,可以定义 After interceptor.以下是如何在模块的构造函数中定义After Interceptor:
After += ctx =>
{
    ...
}

您还可以在引导程序中定义应用程序级挂钩:

pipelines.AfterRequest += (ctx) => { ... };

更新:
根据评论,最好的方法是在钩子中使用以下代码:

if (ctx.Response.ContentType == "text/html")
    ctx.Response.ContentType = "text/html; charset=utf-8";

(编辑:李大同)

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

    推荐文章
      热点阅读