`

169. Spring Boot 集成jersey中文乱码完美方案

阅读更多

 

【视频&交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

需求缘起:

       在录制视频《Spring Boot集成jersey》的时候,在返回中文的时候,出现了乱码,这个当时在集成的时候,返回的是英文,所以并没有发现这个问题,这里对这个问题给出解决方案。

请求源代码:

       我们这里先提供请求方法的源代码:

@GET//get请求.
    @Path("/getUser")
    @Produces(MediaType.APPLICATION_JSON)
    public Map<String,Object> getUser(){
       Map<String,Object> map = new HashMap<String,Object>();
       map.put("id","1000");
       map.put("name","张三");
       map.put("age","25");
       System.out.println(map.get("name"));
       return map;
    }

 

 

方案一

       通过以上代码,我们能清楚在map对象中的name的话,是不会出现乱码的,那么就在返回的时候,response,并没有设置编码,那么怎么在返回的时候,指定编码呢,只需要稍微修改上面的代码即可:

@GET//get请求.
@Path("/getUser")
@Produces(MediaType.APPLICATION_JSON+";charset=UTF-8")

 

       在这里我们手动配置了utf-8编码。

 

方案二

       我们先说说方案一存在的问题:

1)编码不方便,每个开发人员都需要进行编码;

2)编码调整或者是后期发现中文,要调整的地方比较多;

3)代码侵入性太强;

       那么我们有更好的方案嘛,当然有,只需要在application.properties配置两个信息:

spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8

 

       到这里就可以完美解决中文乱码问题。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics