打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JS URL传值给servlet乱码

  encodeURI与URLDecoder.decode()的讲解

对于IE,深表无奈啊。

习惯了用chrome了就先在Chrome上测试,OK,成功了。

接着换到Firefox,OK,继续成功。

然后换到IE....果断悲剧了...各种无奈..

 

1 //在servlet、JSP页面中都有添加如下代码2 response.setCharacterEncoding("UTF-8");3 request.setCharacterEncoding("UTF-8");4 5 //在jsp添加如下代码 6 pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" 

添加了上面的代码,也还是依旧不行,只有IE是乱码,竟然还是IE8啊。。

太坑爹了。

经过和百度的一番战斗,终于找到了一个解决方案,如下:

1 //javascript里面加密两次,两次才可以的。
2 var url = "servlet/getText?“+ encodeURI(encodeURI("name="+name));

 

1 //在java里面,通过指定的编码解密即可。2 String name = URLDecoder.decode(request.getParameter("name"),"utf-8");
3 String nameDecode=URLDecoder.decode(name,"utf-8");
注意:对URL编码两次,则在java接受时也需解码两次。

通过以上的两步,就完美的解决了IE乱码的问题了。
转自:http://www.cnblogs.com/xshwy/archive/2011/12/16/2290363.html

        因为js url在传值的过程中使用的是js自己默认的字符集编码规则,我们必须把它转成属于我们自己的编码规格.

在websphere 中使用的是url=encodeURI(encodeURI(url)); //用了2次encodeURI 测试成功,第一次转换没有尝试,
处理方法一:
js 程序代码:url=encodeURI(url);注意是整个URL
服务器端的代码:String linename = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
处理方法二:
js:var url="name="+name;
url=encodeURI(encodeURI(url)); //用了2次encodeURI
window.location = "<%=path%>/inner/line/line.jsp?"+url;
服务器端的代码:
String linename = request.getParameter(name);
//java : 字符解码
linename = java.net.URLDecoder.decode(linename , "UTF-8");

String linenameDe=URLDecoder.decode(linename,"UTF-8");//解码两次

提示:(1)encodeURI对应的是字符的UTF-8编码格式(默认的编码),%xx%yy%zz形式。另一个是对应的解码。

(2)“亲子”经两次“UTF-8”编码后为“%25E4%25BA%25B2%25E5%25AD%2590”

这是经过二次编码URL编码,其中%25是经过二次编码的结果,其原形就是百分号,所以经一次解码后应为 %E4%BA%B2%E5%AD%90 然后就能看出这是经URL编码UTF-8字符,每三组对应一个汉字,解码后就是"亲子"二字了.

(3)

当以url的形式(url?param=...)传递参数时,如果传递的是日文,或中文字符串那么在接收的时候是乱码形式。

这时需要将这些字符串转换成utf-8。


javascript:

encodeURI(value):将value转换成utf-8,

decodeURI(value):将utf-8value反转成字符串。


java:

URLDecoder.decode(value, "utf-8");

URLEncoder.encode(value, "utf-8");

详细出处参考:http://www.jb51.net/article/20973.htm

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
js 提交 乱码解决
JavaScript利用URL向后台传入中文参数乱码问题解决之道!
传智播客:ajax学习笔记---解决浏览器缓存和中文乱码 - habernate的日志 -...
通过cookie保存并读取用户登录信息
URLEncoder.encode 和 URLDecoder.decode 处理url的特殊参数
JS中URL编码参数(UrlEncode) - 菜鸟学飞基地 - 博客园
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服