天天看点

JSON中文字符串返回到JSP页面显示乱码

@ResponseBody

    @RequestMapping(value="/check_username.do",method=RequestMethod.POST,produces="text/html;charset=UTF-8")

    public String check_username(String username){

        if("ajax".equals(username)){

            //用户名匹配正确

            return "{ \"state\":\"1\" , \"message\":\"用户名登录正确\"  }";

        }else{

            //用户名匹配失败

            return "{ \"state\":\"0\" , \"message\":\"用户名错误\"  }";

        }

在该方法调用时,JSON中文字符串在JSP页面显示时 一直是"?????",所以肯定是乱码问题,由于在方法调用前已经用过滤器统一设置了UTF-8的字符集,同时在JSP页面也设置同样的UTF-8字符集,所以数据在从服务器发出Requestq请求到JSP编辑页面均有设置统一字符集,所以问题出在了页面的响应Response的问题上即返回值。经查询在@RequestMapping注解有produces属性,可以设置返回值的数据类型和字符集例如produces="text/html;charset=UTF-8",所以只需在@RequestMapping注解后添加produces属性即可解决JSON数据返回到JSP页面乱码问题。