В MVC 5 это может помочь:
public class ResponseCharset : ActionFilterAttribute
{
private string Charset;
public ResponseCharset(string charset = "utf-8") {
Charset = charset;
}
public override void OnActionExecuted(HttpActionExecutedContext filterContext)
{
filterContext.Response.Content.Headers.ContentType.CharSet = Charset;
}
}
Использование:
public class OrderDetailsController : ApiController
{
[ResponseCharset("utf-8")] // can be windows-1251 etc.
public Object Get(string orderId)
{
// ....
}
}
Основано на идее @ craig-stuntz.
Конечно, вам нужно убедиться, что вы даете правильную кодировку ответа, т. Е. Кодировка контента должна соответствовать той, которая указана в атрибуте ResponseCharset.
Мне очень помогло, когда я тестировал код mvc с Chrome, потому что он не указывает кодировку в заголовке accept.