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;
}
然后就可以接收正常的中文了!