您的位置:首页 > 产品设计 > UI/UE

后台获取ajax传参, request.getParameter(“参数名”) 中文乱码解决方法

2016-08-16 11:17 1021 查看
后台获取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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax
相关文章推荐