2

この些細な質問に対処してください。

"SOME_DOMAIN?q\x3dnintendo+mathe\x26um\x3d1\x26ie\x3dUTF-8\x26tbm\x3dshop\x26cid\x3d8123694338777545283\x26sa\x3dX\x26ei\x3dL8cjUJmHO8L30gGa1ICgCw\x26ved\x3d0CI4BEIIIMAk"エスケープ文字が含まれているような URL を取得しています。

これらの 16 進文字を削除する最良の方法は何ですか? 私は今のところ私の問題を解決するこのスニペットを持っていますが、信頼できる解決策のようには見えません。

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

この問題に直面したことはありませんが、URL の間にスペースが表示されることがあります。私URLDecoder.decodeの問題を解決する必要がありますか?

親切にアドバイス。

ありがとう

4

1 に答える 1

5

これは機能します

   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

于 2012-08-09T14:58:46.357 に答える