37

URL の InputStream を介して xml を読み取り、URL 以外のすべてを切り取ると、" http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu%が得られます。 20Bin%20Bataye.mp3」.

ご覧のとおり、「%20」がたくさんあります。

URLをエスケープ解除したい。

サードパーティのライブラリを使用せずに Java でこれを行う方法はありますか?

4

3 に答える 3

65

これはエスケープされていない XML ではなく、URL エンコードされたテキストです。URL文字列で次を使用したいようです。

URLDecoder.decode(url);

これにより、正しいテキストが得られます。あなたが提供したようなものをデコードした結果はこれです。

http://cliveg.bu.edu/people/sganguly/player/ Rang De Basanti - Tu Bin Bataye.mp3

%20 はエスケープされたスペース文字です。上記を取得するために、URLDecoder オブジェクトを使用しました。

于 2009-03-08T17:52:19.317 に答える
0

áé、などの特殊文字がある場合、この方法を使用すると問題が発生しますí。私の (おそらく野生の) 推測では、ワイド文字が適切にエンコードされていません。少なくとも、%uC2BF代わりに%C2%BF.

編集済み: 悪いことに、この投稿では、URL エンコーディングと JavaScript のエスケープ シーケンスの違いについて説明しています: Apache httpclient 4 の UNICODE での URI エンコーディング

于 2011-02-09T16:45:45.133 に答える