欢迎光临
个人技术文档整理

.NetCore 调用API 返回JSON中文乱码(被编码了)

代码如下:

[HttpGet, HttpPost]
public IActionResult ApiTest()
{  
    return Json("OK-你是对的"); 
}

接口返回出现

"OK-\u4F60\u662F\u5BF9\u7684"

这个原因是Json序列化的时候没有对中文进行处理,我们可以通过设置JsonSerializerOptions设置,这里有两种方式一种直接传递设置

第一种代码如下:

 [HttpGet, HttpPost]
        public IActionResult ApiTest()
        {
            //第一种方式
            var options = new JsonSerializerOptions
            {
                Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
            };
            return Json("OK-你是对的", options);
        }

第二种 在 Startup.cs 里面全局设置,代码如下 (推荐第二种)

 public void ConfigureServices(IServiceCollection services)
        {
            
            services.AddControllers().AddJsonOptions(cfg =>
            {
                cfg.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
            });

        }

修改后接口返回:

"name为空"

 

赞(2)