本文主要是介绍URLEncoder.encode与URLDecoder.decode处理url请求中特殊参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
java中使用 url 的 queryString 传递参数时,因为参数的值,被DES加密了,而加密得到的是 Base64的编码字符串
类似于:
显然 这里面含有了 特殊字符: / + = 等等,如果直接通过url 来传递该参数:
url = "xxxxx?param="+ "za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g==
那么在服务端获得 param 会变成类似于下面的值:
"za4T8MHB/6mhmYgXB7IntyyOUL7Cl 0jv5rFxAIFVji8GDrcf k8g==""
我们看到 三个 + 号消失了。
其原因就是:如果url参数值含有特殊字符时,需要使用 url 编码。
然后服务端获取时:
String param = URLDecoder.decode(param, "utf-8");
这样才能获得正确的值: "za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g=="
这篇关于URLEncoder.encode与URLDecoder.decode处理url请求中特殊参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!