JQuery中Ajax的Post提交中文乱码、windows.location.href 中文汉字乱码和springmvc使用原生态HttpServletRequest接收参数中文乱码解决办法
2017-08-12 18:17
1096 查看
原文地址:http://blog.csdn.net/blueheart20/article/details/26370023
引言: 在jQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢?
问题的引入:
var regid = $('#oregion').combobox('getValue');
//var sname = $('#sname').val();
var sname = encodeURI($('#sname').val(),"UTF-8");
if(regid!=""&®id!='undefined'){
$.ajax({
async: true,
type : "POST",
dataType : "json",
url : "<%=request.getContextPath() %>/secretary/isHasUser.do?regid="+regid+"&sname="+sname,
success : function(data) {
if(data.mes!=""&&data.mes!=null){
$.messager.alert('Warning',data.mes);
return false;
}
}
});
}
}
以上的代码在FF/Chrome中,可以正常传递中文,但是在IE下,则存在问题,在后台输出的信息为乱码。
问题尝试办法:
1. 设置了 contentType: "text/plain; charset=utf-8", 问题依然存在
2. 重新检查了ajax代码所在的jsp页面,皆为使用utf-8,但是问题依然存在
3. 在后台的Java代码中,强制使用utf-8、gbk、gb2312的编码转换, 问题依然存在
经过分析,判断其可能与浏览器或者jquery中的内容传输有关,目前也无法准确的确定。
解决的办法:
前段:encodeURI($(dom).val(), "UTF-8"); 使用encodeURI进行编码
后端Java代码:
URLDecoder.decode(inputStr,"UTF-8"): 后端代码针对前段传递过来的字符串,进行解码。
总结:
最后就可以针对Ajax Post请求传递过来的字符串信息,就可以正常显示中文了。
2、windows.location.href 中文汉字乱码解决办法
页面:
3、springmvc使用原生态HttpServletRequest接收参数中文乱码问题
Request默认编码是iso-8859-1,而前台是utf-8编码,导致获取值输出发现是乱码。
new String(request.getParameter("xxx").getBytes("iso-8859-1"),"utf-8");
引言: 在jQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢?
问题的引入:
var regid = $('#oregion').combobox('getValue');
//var sname = $('#sname').val();
var sname = encodeURI($('#sname').val(),"UTF-8");
if(regid!=""&®id!='undefined'){
$.ajax({
async: true,
type : "POST",
dataType : "json",
url : "<%=request.getContextPath() %>/secretary/isHasUser.do?regid="+regid+"&sname="+sname,
success : function(data) {
if(data.mes!=""&&data.mes!=null){
$.messager.alert('Warning',data.mes);
return false;
}
}
});
}
}
以上的代码在FF/Chrome中,可以正常传递中文,但是在IE下,则存在问题,在后台输出的信息为乱码。
问题尝试办法:
1. 设置了 contentType: "text/plain; charset=utf-8", 问题依然存在
2. 重新检查了ajax代码所在的jsp页面,皆为使用utf-8,但是问题依然存在
3. 在后台的Java代码中,强制使用utf-8、gbk、gb2312的编码转换, 问题依然存在
经过分析,判断其可能与浏览器或者jquery中的内容传输有关,目前也无法准确的确定。
解决的办法:
前段:encodeURI($(dom).val(), "UTF-8"); 使用encodeURI进行编码
后端Java代码:
URLDecoder.decode(inputStr,"UTF-8"): 后端代码针对前段传递过来的字符串,进行解码。
总结:
最后就可以针对Ajax Post请求传递过来的字符串信息,就可以正常显示中文了。
2、windows.location.href 中文汉字乱码解决办法
页面:
function downLoad(address){ var addr = encodeURI(encodeURI(address)); //对汉字进行编码 window.location.href ="fileDownload.action?path="+addr; }action:
String path = ""; try { path = URLDecoder.decode(request.getParameter("path"),"UTF-8");//后台解码 } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }
3、springmvc使用原生态HttpServletRequest接收参数中文乱码问题
Request默认编码是iso-8859-1,而前台是utf-8编码,导致获取值输出发现是乱码。
new String(request.getParameter("xxx").getBytes("iso-8859-1"),"utf-8");
相关文章推荐
- js提交表单中包含中文参数值,request请求参数正常,服务器端接收出现乱码解决思路
- 利用jquery实现Ajax技术,post方式传值中文乱码问题的解决办法。
- SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;
- AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题
- AngularJs中$http发送post或者get请求,SpringMVC后台接收不到参数值的解决办法
- Ajax Post提交事例及SpringMVC注解@RequestMapping取不到参数值解决办法
- JQuery中Ajax的Post提交在IE下中文乱码的解决方法
- Ajax Post提交事例及SpringMVC注解@RequestMapping取不到参数值解决办法
- 解决问题:在使用springmvc的web.xml配置乱码拦截器之后接收的get或者post请求中文还是乱码
- AngularJs中$http发送post或者get请求,SpringMVC后台接收不到参数值的解决办法
- HttpServletRequest setCharacterEncoding 接收post方式传递的中文参数
- 使用jquery的$.ajax向服务端传递中文,避免乱码的解决办法!
- struts2中使用jquery进行ajax提交时乱码解决办法
- Asp中使用JQuery的AJAX提交中文乱码解决方法
- Asp中使用JQuery的AJAX提交中文乱码解决方法
- jsp中request接收中文参数乱码问题解决办法
- JQuery中Ajax的Post提交在IE下中文乱码的解决方法
- HttpClient4.5.2版本中POST提交中文参数时乱码问题解决方法
- Http Post请求提交json格式数据工具类,解决请求参数中文乱码问题
- struts2中使用jquery进行ajax提交时乱码解决办法