簡體   English   中英

從網址中刪除十六進制字符

[英]Remove hexadecimal characters from URL

請處理這個瑣碎的問題。

我得到了一些URL,例如"SOME_DOMAIN?q\\x3dnintendo+mathe\\x26um\\x3d1\\x26ie\\x3dUTF-8\\x26tbm\\x3dshop\\x26cid\\x3d8123694338777545283\\x26sa\\x3dX\\x26ei\\x3dL8cjUJmHO8L30gGa1ICgCw\\x26ved\\x3d0CI4BEIIIMAk"

刪除這些十六進制字符的最佳方法是什么? 我在下面的代碼段中解決了我的問題,但看起來並不可靠。

    url = url.replace("\\x2F","/");
    url = url.replace("\\x26","&");
    url = url.replace("\\x3d","=");
    url = url.replace("\\x2F","/");
    url = url.replace("\\x2F","/");

我還沒有遇到這個問題,但是URL之間可能會出現空格。 URLDecoder.decode是否應該解決我的問題?

好心的建議。

謝謝

這有效

   URLDecoder.decode(yourURLString.replace("\\x", "%"), "UTF-8")

看到這個動作:)

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"));

}

回報

SOME_DOMAIN?q=nintendo mathe&um=1&ie=UTF-8&tbm=shop&cid=8123694338777545283&sa=X&ei=L8cjUJmHO8L30gGa1ICgCw&ved=0CI4BEIIIMAk

基本上,您需要將\\x替換為%並使用以下命令對其進行解碼:

 URLDecoder.decode(url, "UTF-8");

看這里

http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLDecoder.html#decode%28java.lang.String,%20java.lang.String%29

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM