后台获取ajax传递的参数, request.getParameter(“参数名”) 中文乱码解决方法
原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)
解决办法:我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流
我们可以通过转码的方式解决乱码问题, 具体代码如下:
String str= new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");
ajax向后台传递参数: (参数名为name)
$.ajax({
url:'localhost:8080/test/test.do',
data: {'name': 'lili'}
});
后台获取参数:
1. 通过request获取
@RequestMapping(value = "/test.do")
@ResponseBody
public Object selectAllDatas(HttpServletRequest request,HttpServletResponse response) {
try {
String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");
return null;
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
return null;
}
}
第二种: 直接获取
@RequestMapping(value = "/test.do")
@ResponseBody
public Object selectAllDatas(String "参数名") {
try {
String("参数名".getBytes("iso-8859-1"), "utf-8");
return null;
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
return null;
}
}