【问题标题】:Non-ASCII characters scrambled when writing response in ASP.NET Core在 ASP.NET Core 中写入响应时非 ASCII 字符乱码
【发布时间】:2018-10-13 16:08:00
【问题描述】:

如果我将此 Startup 放在 ASP.NET Core 应用程序中,文本将被打乱(ÅÄÖ)。如果我在中间件中这样做,也会发生同样的事情。将Encoding.UTF8 传递给WriteAsync 没有帮助。

public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        app.Run(async context => { await context.Response.WriteAsync("ÅÄÖ"); });
    }
}

出了什么问题,我可以做些什么来解决它?

【问题讨论】:

    标签: c# asp.net-core character-encoding non-ascii-characters


    【解决方案1】:

    您需要提供正确的Content-Type 标头。没有它,浏览器只能猜测内容响应代表什么,以及采用哪种编码。当然,如果这个猜测不正确也没有什么问题,就像你的情况一样。

    app.Run(async context => {
        // text in UTF-8
        context.Response.ContentType = "text/plain; charset=utf-8";
        await context.Response.WriteAsync("ÅÄÖ");
    });
    

    【讨论】:

      猜你喜欢
      • 2017-10-19
      • 2019-04-29
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2014-04-05
      • 2014-09-05
      相关资源
      最近更新 更多