.net core webapp 中添加一個appsetting.json文件如下:
{
"message": "<b>hello你好啊</b>"
}
在Startup類,Configure方法中直接讀取並打印到前端:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting(routes =>
{
routes.MapGet("/", async context =>
{
var msg = Configuration["message"];
await context.Response.WriteAsync(msg);
});
});
}
結果:
英文字符正常輸出,中文亂碼;
解決
在高級保存選項中,查看編碼格式是否爲utf-8 sign:
查看瀏覽器編碼:firefox->右上角更多->文字編碼:
手動設置Unicode後,正常輸出中文字符:
看來是瀏覽器自動識別簡體中文(gb2312?)導致,在字符打印之前設置響應頭即可:
app.UseRouting(routes =>
{
routes.MapGet("/", async context =>
{
var msg = Configuration["message"];
//指定響應頭編碼格式爲utf-8
context.Response.ContentType = "text/plain; charset=utf-8";
await context.Response.WriteAsync(msg);
});
});