Javascript 中的 decodeURI/decodeURIComponent,Java中的java.net.URLDecoder类的decode方法提供了相近的功能,但又有一些微妙的不同:
var URLDecoder = Java.type("java.net.URLDecoder");
var URLEncoder = Java.type("java.net.URLEncoder");
var url = "
中文";
var s1 = encodeURI(url);
var s2 = encodeURIComponent(url);
var s3 = URLEncoder.encode(url, "UTF-8");
print(s1);
print(s2);
print(s3);
print("-------------")
print(decodeURI(s1));
print(decodeURI(s2));
print(decodeURI(s3));
print("-------------")
print(decodeURIComponent(s1));
print(decodeURIComponent(s2));
print(decodeURIComponent(s3));
print("-------------")
print(URLDecoder.decode(s1, "UTF-8"));
print(URLDecoder.decode(s2, "UTF-8"));
print(URLDecoder.decode(s3, "UTF-8"));
使用JDK8的jjs.exe运行上面这段代码,结果如下:
D:\Temp>j:\share\jdk8\bin\jjs.exe url.js
http%3A%2F%2Fwww.example.com%2Fstring%20with%20%2B%20and%20%3F%20and%20%26%20and%20%E4%B8%AD%E6%96%87
http%3A%2F%2Fwww.example.com%2Fstring+with+%2B+and+%3F+and+%26+and+%E4%B8%AD%E6%96%87
-------------
中文
http%3A%2F%2Fwww.example.com%2Fstring with %2B and %3F and %26 and 中文
http%3A%2F%2Fwww.example.com%2Fstring+with+%2B+and+%3F+and+%26+and+中文
-------------
中文
中文
中文
-------------
中文
中文
中文
你好,你说的decodeURI方法应该是JavaScript中的类库吧。java中有其类似的类的。
加码:java.net.URLEncoder.encode("要加码的字符串", "UTF-8");//加码成UTF-8格式
解码:java.net.URLDecoder.decode("要解码的字符串", "UTF-8");
具体可查看java的api文档。
希望能帮助你!
java中你可以通过File类的 toURI 获取次路径的URI
网络资源 你可以 new 一个URL 然后 toURI
参看API:
java.net.URLDecoder
再附个实例: