NancyFx: установите кодировку по умолчанию в utf8

у меня есть этот фрагмент в моей cshtml файл:

Expires on: @Model.EndDate.ToString("MMM dd yyyy")

и я получаю это в ответ:

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

...
Expires on: ׳�׳�׳™ 05 2013

как сказать Нэнси использовать UTF8 по умолчанию для ответов?


Edit: чтобы уточнить, это не проблема локализации, выходные данные уже локализованы - это просто то, что локализованная строка UTF8 отправляется клиенту без объявления кодировки UTF8, поэтому она попадает в ошибку при попытке обработать ее как латинских типа 1.

то, что я ищу это:

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

...

и я хотел бы не указывать его для каждого ответа отдельно.

Я использую NancyFx веб-платформу

1 ответов


Если вы хотите указать объявление кодировки UTF8 в ответе вашего модуля, вы можете определить после того, как перехватчик. Вот как вы можете определить After Interceptor в конструкторе вашего модуля:

After += ctx =>
{
    ...
}

вы также можете определить крюк уровня приложения в вашем загрузчике:

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

обновление: Основываясь на комментариях, лучшим подходом было бы использование следующего кода в крючке:

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