ssm+使用ajax传参数到控制器,参数中文乱码的解决方法

ajax中地址中如果参数直接写 url: 'user/getUserByNN.do?nickName='+nk,控制中接收参数是中文乱码:

public String getUserByNN(String nickName,HttpServletResponse response)

因为参数传的字符串类型,还是中文的,所以导致参数出现了一些看不懂的乱码,这样做查询的时候会返回一个null值,解决方法是第一步在Url中的传值得这么写:

 url: 'user/getUserByNN.do?nickName='+encodeURI(encodeURI(nk))

第二步在控制器中得这么写:

public String getUserByNN(String nickName,HttpServletResponse response) throws UnsupportedEncodingException {
        
nickName = URLDecoder.decode(nickName, "UTF-8");
        JSONObject jsonObject = new JSONObject();
        Userinfo user = userInfoService.getUserByNN(nickName);
        if(user != null) {
            jsonObject.put("msg", "no");
        }else {
            jsonObject.put("msg", "");
        }
        OutUtil.print(jsonObject, response);
        return null;
    }

然后就可以接收正常的中文了!

猜你喜欢

转载自blog.csdn.net/qq_38337245/article/details/85028922
今日推荐