ins*_*ect 2 java url url-encoding
请处理这个琐碎的问题.
我得到一些"SOME_DOMAIN?q\x3dnintendo+mathe\x26um\x3d1\x26ie\x3dUTF-8\x26tbm\x3dshop\x26cid\x3d8123694338777545283\x26sa\x3dX\x26ei\x3dL8cjUJmHO8L30gGa1ICgCw\x26ved\x3d0CI4BEIIIMAk"
包含一些转义字符的URL .
删除这些十六进制字符的最佳方法是什么?我有这个下面的片段,它解决了我现在的问题,但看起来不是一个可靠的解决方案.
url = url.replace("\\x2F","/");
url = url.replace("\\x26","&");
url = url.replace("\\x3d","=");
url = url.replace("\\x2F","/");
url = url.replace("\\x2F","/");
Run Code Online (Sandbox Code Playgroud)
我没有遇到过这个问题,但URL之间可能会出现空格.应该URLDecoder.decode
解决我的问题?
好心劝告.
谢谢
这有效
URLDecoder.decode(yourURLString.replace("\\x", "%"), "UTF-8")
Run Code Online (Sandbox Code Playgroud)
看到这个在行动:)
public static void main(String[] args) throws UnsupportedEncodingException {
String s = "SOME_DOMAIN?q\\x3dnintendo+mathe\\x26um\\x3d1\\x26ie\\x3dUTF-8\\x26tbm\\x3dshop\\x26cid\\x3d8123694338777545283\\x26sa\\x3dX\\x26ei\\x3dL8cjUJmHO8L30gGa1ICgCw\\x26ved\\x3d0CI4BEIIIMAk";
System.out.println(URLDecoder.decode(s.replace("\\x", "%"), "UTF-8"));
}
Run Code Online (Sandbox Code Playgroud)
回报
SOME_DOMAIN?q=nintendo mathe&um=1&ie=UTF-8&tbm=shop&cid=8123694338777545283&sa=X&ei=L8cjUJmHO8L30gGa1ICgCw&ved=0CI4BEIIIMAk
Run Code Online (Sandbox Code Playgroud)
基本上,你需要更换\x
与%
使用其解码:
URLDecoder.decode(url, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
看这里