如何更改C#.net核心web api json响应的字符集响应头和响应编码?

时间:2017-08-26 12:05:17

标签: c# encoding .net-core asp.net-core-webapi

我有简单的.net核心wep api应用程序,带有这样的控制器方法

   [HttpGet("{id}")]
    public ActionResult  Get(int id)
    {
        var myObj= _testRepository.TryGetById(id);
        if (myObj== null)
        {
            return new NotFoundResult();
        }
        return new JsonResult(myObj);

    }

此方法返回带标题的json响应

Content-Type    application/json; charset=utf-8
Date    Sat, 26 Aug 2017 12:01:00 GMT
Server  Kestrel
Transfer-Encoding   chunked

我需要将 charset = utf-8 标题更改为 charset = utf-16 。我怎么能这样做?

更新

我想更改 charset 标头,因为我需要将json响应中的字符串字段转义为

{ "city": "\u0420\u043e\u0441\u0431\u0438\u0440\u0441\u043a"}

通过更改Startup.cs

中的代码可以解决此问题
public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddMvc();
    ...
}

=>

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddMvc().AddJsonOptions(options =>
        {
            options.SerializerSettings.StringEscapeHandling =  StringEscapeHandling.EscapeNonAscii;
        });
    ...
}

但我真的很困惑,我还没有在网上找到有关如何更改默认 charset 标头的任何信息。我认为任何api框架都必须是微不足道的操作。

0 个答案:

没有答案