欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

.NetCore3.1 API 返回Json中文乱码设置

程序员文章站 2023-12-30 15:16:16
...

今天用3.1尝试了一下API返回,代码如下

[Route("get")]
        public IActionResult Get(long id) {
            return new JsonResult(new User { 
                Id=1,
                Name="张三",
                Age=20
            });
        }

运行返回结果中文名称乱码如下图

.NetCore3.1 API 返回Json中文乱码设置

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

[Route("get")]
        public IActionResult Get(long id) {
            var options = new JsonSerializerOptions
            {
                Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
            };
            return new JsonResult(new User
            {
                Id = 1,
                Name = "张三",
                Age = 20
            }, options);
        }

还有一种就是在startup里面全局设置,代码如下

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

这样就不会有乱码了,全局配置也方便,不用每个地方都要

上一篇:

下一篇: