ajax穿中文参数在后台乱码,这是个常见的问题,我在这里总结了一下解决方法。
1.一般用form直接提交中文参数是不会出现乱码的,因为form进行了封装。
2.在地址栏上传递中文参数到后台,后台需要对接收到到的字符进行处理:(仅用于地址栏的处理,如果在地址栏中使用第三种方法进行转码则地址栏会自动把编码有转换成中文的,起不到转码的作用)
request.setCharacterEncoding("UTF-8");
String provinceName=request.getParameter("provinceName");
provinceName = new String(provinceName.getBytes("ISO8859-1"), "UTF-8");//防止乱码强制转换
3.ajax提交,中文有乱码,只能先把中文进行编码在传递,到后台进行解码即可。(引用于ajax提交)
前端js:
var name=encodeURI($('#JS_MLL_search_header_input').val());这是进行中文编码了。
unescape(str) :ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。
encodeURI(str):这个推荐使用
后台解码:
System.out.println(URLEncoder.encode("和韩国韩国","utf-8"));//这个就相当于JS里面的encodeURI(str)这个方法。
System.out.println(URLDecoder.decode(URLEncoder.encode("和韩国韩国","utf-8"),"utf-8"));
4.ajax提交form表单,一般form里面有很多参数,如果采用ajax提交需要一个接一个的拼接参数很苦逼,就不能采用方法三那种单个编码了,还好jQuery为我们提供一个比较好的方法,$('form').serialize(),这个方法直接把form里面的参数全部自动拼接为url参数的格式,例如:
residentsUser.usercode=yjr&residentsUser.birthday=2015-12-10&residentsUser.sex=0&residentsUser.email=123%40qq.com&residentsUser.name=%E6%9D%A8%E6%99%93%E5%B3%B0&residentsUser.qq=741254&residentsUser.msn=mnd56uytr&residentsUser.userphone=13845263654
如果有中文自动帮我们转码,但是我在测试的时候发现,这个中文自动帮我们转码其实没多大作用,例如:
function updateBaseInfo(){
var parm=$('#JS_basic_info').serialize();
alert(parm);
$.ajax({
async:true,
cache:false,
data:parm,//此时要注意如果带有中文的参数不能放在这,否则后台无论如何都不会转码成功了,这个我也是醉了,不知道咋弄
dataType:"text",
type:"post",
url: "${rootPath}/updateBaseInfo.htm?"+parm, 参数只能放在这在后台可以使用方法二进行转码
success: function(data){
alert(data);
}
});
}
相关推荐
在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助
使用Ajax传递中文参数,如果不对参数进行处理的话,传到后台会变成乱码,经测试可以使用如下方法 这里是以jquery.autocomplete插件中获取输入框中的数据传到后台为例: 注意要对中文使用encodeURI编码两次 代码如下:...
php中url地址栏传参数中文乱码解决方法汇总
乱码,头大的一件事可以考虑转码方式不直接传中文,在js里用escape转码,具体实现如下,有类似情况的朋友可以参考下
在js中对中文进行编码在java程序中进行解码即可解决中文乱码问题
修改Tomcat默认编码消除get方式传递参数出现中文乱码修改Tomcat默认编码消除get方式传递参数出现中文乱码修改Tomcat默认编码消除get方式传递参数出现中文乱码修改Tomcat默认编码消除get方式传递参数出现中文乱码
asp.net中URL参数传值中文乱码的三种解决办法
AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题
网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到的是乱码问题的解决 网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到...
从A页面通过url传参到B页面时,获取URL中参数出现中文乱码问题,解析url参数的正确方法如下,感兴趣的朋友可以参考下
js获取中文地址栏参数
本篇文章主要是对在页面上用action传递参数到后台出现乱码的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
主要介绍了详解如何解决SSM框架前台传参数到后台乱码的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
解决JS传递中文乱码问题
防止Socket传递汉字乱码,防止Socket传递汉字乱码
jsp使用URL编码传递中文参数乱码问题
解决传递汉字丢失或乱码的问题
C++Http上传文件到web服务器,解决中文参数乱码问题,微软提供的Chttpconnect 类在请求http头参数是中文时出现乱码