全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法

最近在使用 url 的 queryString 传递参数时,因为参数的值,被DES加密了,而加密得到的是 Base64的编码字符串

类似于:

za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g==

显然 这里面含有了 特殊字符: / + = 等等,如果直接通过url 来传递该参数:

url = "xxxxx?param=" + "za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g==";

那么在服务端获得 param 会变成类似于下面的值:

"za4T8MHB/6mhmYgXB7IntyyOUL7Cl 0jv5rFxAIFVji8GDrcf k8g=="

我们看到 三个 + 号消失了。

其原因就是:如果url参数值含有特殊字符时,需要使用 url 编码。

url = "xxxxx?param=" + URLEncoder.encode("xxx", "utf-8");

然后服务端获取时:

String param = URLDecoder.decode(param, "utf-8");

这样才能获得正确的值: "za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g=="

其实 js 中也有类似功能的函数:

参见:js中编码函数:escape,encodeURI,encodeURIComponent

注意事项:

URLEncoder should be the way to go. You only need to keep in mind to encode only the individual query string parameter name and/or value, not the entire URL, for sure not the query string parameter separator character & nor the parameter name-value separator character =

String q = "random word 拢500 bank $";
String url = "http://example.com/query?q=" + URLEncoder.encode(q, "UTF-8");

URLEncoder 必须 仅仅 编码 参数 或者参数的值,不能编码整个 url,也不能一起对 param=value 进行编码。而是应该: param=URLEncode(value, "utf-8")

或者 URLEncode(param, "utf-8")=URLEncode(value, "utf-8")

因为 url 中的 & 和 = 他们是作为参数之间 以及 参数和值之间的分隔符的。如果一起编码了,就无法区分他们了。

进一步参考文档:

https://www.talisman.org/~erlkonig/misc/lunatech%5Ewhat-every-webdev-must-know-about-url-encoding/

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# url参数传递  # 特殊字符  # url参数encode  # urldecode  # Java之URLEncoder、URLDecoder、Base64编码与解码方式  # java使用URLDecoder和URLEncoder对中文字符进行编码和解码  # Java中的UrlDecoder 和 UrlEncoder_动力节点Java学院整理  # UrlDecoder和UrlEncoder使用详解_动力节点Java学院整理  # Java-URLDecoder、URLEncoder使用及说明  # 类似于  # 服务端  # 的是  # 也有  # 这篇文章  # 谢谢大家  # 这里面  # 文档  # 分隔符  # 消失了  # 有疑问  # encode  # param  # URLEncoder  # code  # decode  # escape  # js  # utf 


相关文章: 如何解决ASP生成WAP建站中文乱码问题?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  定制建站是什么?如何实现个性化需求?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  建站之星在线客服如何快速接入解答?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  如何挑选最适合建站的高性能VPS主机?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  建站ABC备案流程中有哪些关键注意事项?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何快速登录WAP自助建站平台?  网页设计网站制作软件,microsoft office哪个可以创建网页?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  如何高效完成自助建站业务培训?  网站设计制作企业有哪些,抖音官网主页怎么设置?  ,制作一个手机app网站要多少钱?  家庭服务器如何搭建个人网站?  如何在阿里云通过域名搭建网站?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  全景视频制作网站有哪些,全景图怎么做成网页?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何高效配置IIS服务器搭建网站?  建站主机服务器选购指南:轻量应用与VPS配置解析  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  如何零基础在云服务器搭建WordPress站点?  宝塔建站助手安装配置与建站模板使用全流程解析  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  建站之星后台密码如何安全设置与找回?  建站之星备案是否影响网站上线时间?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  建站之星后台密码遗忘?如何快速找回?  如何通过PHP快速构建高效问答网站功能?  如何安全更换建站之星模板并保留数据?  网站企业制作流程,用什么语言做企业网站比较好?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何撰写建站申请书?关键要点有哪些?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  如何快速搭建高效简练网站?  ppt制作免费网站有哪些,ppt模板免费下载网站?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  学校为何禁止电信移动建设网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。