java到js的中文无法显示,中文显示位(?)

空扰寡人 提交于 2020-02-24 03:31:49

今天遇到这么一个问题,用js调用java的get请求,得到的json数据中中文无法正常显示,jsp文件中都是申明utf-8格式的,查询了一番,发现问题出现在@ResponseBody上

@ResponseBody默认的编码格式为ISO-8859-1,需要修改,在@GetMapping中加入produces的内容

参考:springmvc @ResponseBody乱码,兼容UTF-8格式

java代码

@Controller
public class ExamController {
    @Autowired
    private ExamService examService;
    
    @GetMapping(value = "/getPaper", produces = "application/json; charset=utf-8")
    @ResponseBody
    public String getPaper(HttpSession session) {
        Paper paper = null;
        try {
            paper = this.examService.getPaper();
        }catch(SystemException e){
            session.setAttribute("msg", e.getMessage());
        }catch(Exception e1) {
            e1.printStackTrace();
        }
        System.out.println(paper.toString());
        return paper.toString();
    }
}

或者配置文件中添加bean

<bean class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
          <array>
                <bean class = "org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes" value = "text/plain;charset=UTF-8" />
                </bean>
        </array>
    </property>
</bean>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!