解决ajax get post方式提交中文参数乱码问题
程序员文章站
2022-05-02 23:44:03
最近在工作中遇到,使用ajax get方式提交中文参数的时候出现乱码,通过上网搜索,总结出比较简单的两种解决方案: 第一种,由于tomcat默认的字符集是ISO-8859-1,修改Tomcat中的server.xml,在port为8080(也可以是不同的端口)的Connector中加入属性: URI ......
最近在工作中遇到,使用ajax get方式提交中文参数的时候出现乱码,通过上网搜索,总结出比较简单的两种解决方案:
第一种,由于tomcat默认的字符集是iso-8859-1,修改tomcat中的server.xml,在port为8080(也可以是不同的端口)的connector中加入属性: uriencoding="utf-8" 就可以了。
这样在ajax的url中参数,或type为get的时候在data中的参数,在后台获取都不会再后台出现乱码了。不用在后台使用转码的代码都行了。
第二种,对需要传递的中文参数先进行两次转码:
1.js文件中使用encodeuri()方法。
1 //检查版本名称是否已经存在 2 function checkversionname() { 3 var name = $('#name').val(); 4 //var re = /^[1-9]+[0-9]*]*$/; 5 /* if (!re.test(resourceid)) { 6 alert("id请输入数字"); 7 $('#resourceid').val(''); 8 return false; 9 } */ 10 var url = "${ctx}/mkt/appversion/list?name=" + encodeuri(encodeuri(name)); 11 $.ajax({ 12 cache:false, 13 type: "post", 14 async: false, 15 url: url, 16 datatype: "json", 17 contenttype:'application/x-www-form-urlencoded; charset=utf-8', 18 success: function (data) { 19 if (data.page.count > 0) { 20 top.$.jbox.info("版本名称:" + name + "已经存在"); 21 $('#name').val('') 22 } 23 } 24 }); 25 }
有的时候是这样(我遇到了):var url = "<%=bathpath%>/department/list?keyword=" + encodeuri(keyword);
2.在后台中对传递的参数进行urldecoder解码
string keyword= urldecoder.decode(request.getparameter("keyword"),"utf-8");
上一篇: NLTK和Stanford NLP两个工具的安装配置
下一篇: [SCOI2016] 幸运数字
推荐阅读
-
JSP+ MySQL中文乱码问题post提交乱码解决方案
-
JAVA POST与GET数据传递时中文乱码问题解决方法
-
jquery ajax传递中文参数乱码问题及解决方法说明
-
jsp中 ajax的get请求的中文乱码问题的解决方法
-
解决ajax get post方式提交中文参数乱码问题
-
SpringMVC中如何解决post和get请求的中文乱码问题
-
Web项目:解决SpringMVC中Post或者Get请求中文乱码的问题
-
SpringMVC中如何解决POST请求中文乱码问题GET的又如何处理
-
用SpringMVC参数传递时,解决get请求时中文乱码的问题
-
asp.net ajax get post 中文乱码解决办法