HttpServletResponse乱码问题

264 阅读1分钟

设置字符编码

     response.setContentType("application/json;charset=utf-8");
        response.setCharacterEncoding("utf-8");

代码位置

 public void handle(HttpServletRequest request, HttpServletResponse response, BlockException e) throws Exception {
        log.error("block Handler:{}",e.getRule());
        R r =null;
        if (e instanceof FlowException){
            r = new R(100,"流控!");
        }else if (e instanceof DegradeException){
            r = new R(101,"熔断降级");
        }else if (e instanceof ParamFlowException){
            r = new R(102,"热点参数流控");
        }else if (e instanceof SystemBlockException){
            r = new R(103,"系统保护规则");
        }else if (e instanceof AuthorityException){
            r = new R(104,"授权失败");
        }

        response.setStatus(500);
        response.setContentType("application/json;charset=utf-8");
        response.setCharacterEncoding("utf-8");
        //一定要放到 设置之后,否则乱码
        PrintWriter pw=response.getWriter();
        String json = new ObjectMapper().writeValueAsString(r);
        pw.write(json);
    }