好贷网好贷款

解决ajax请求地址含中文参数

发布时间:2016-12-5 2:20:35 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"解决ajax请求地址含中文参数",主要涉及到解决ajax请求地址含中文参数方面的内容,对于解决ajax请求地址含中文参数感兴趣的同学可以参考一下。

1:首先介绍了几个概念URL请求传递中文参数乱码 原以为escape() encodeURI() encodeURIComponent  这三个函数属于javascript,所以不管是解码还是编码都必须在页面中进行,以至于我想在服务器逻辑代码中解码不可行,但是其实是可行的,首先要知道这三个javascript的编码都是按照UTF-8来进行编码的,所以我可以猜想到,传递是编码是utf-8的那么肯定是显示是中文正常的啦!但是在服务器端(tomcat)却是乱码,可见在tomcat中没有以utf-8的形式来接受,真实的情况是tomcat是以ISO-8859-1来接收的,这个时候,有多种方式可以来解决,一个是直接改变tomcat的编码方式,这样一劳永逸,但是我暂时不这样做,多犯错提醒自己总是好的!第二中也是常见的方式new String(xx.getBytes("ISO-8859-1"),“utf-8”)这样就将8859的码变为utf-8了 思路就是这样的,贴代码吧: 再多说一句,其实这个encodeURI(desc0);  的用处没有多大,只是保证了传过去的码是utf-8的,如果我的页面中能够保证是此编码的,就能正确的解码了 public String saveDescription(){   HttpServletRequest requestDesc=ServletActionContext.getRequest();   try {    requestDesc.setCharacterEncoding("UTF-8");//这个没有用,我ajax用了encodeURI编码,需要在返回的页面中使用decodeURI解码--仔细想想这个也行不通    description=new String(description.getBytes("iso-8859-1"),"UTF-8");   } catch (UnsupportedEncodingException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }   //String desc=(String) requestDesc.getAttribute("desc");   requestDesc.getSession().setAttribute("description", description);   System.out.println("收到描述:"+description);   return null;     }  

上一篇:单链表和双链表在执行删除操作时的…
下一篇:虚拟机VMware的“Cannot conn…

相关文章

相关评论