URL の InputStream を介して xml を読み取り、URL 以外のすべてを切り取ると、" http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu%が得られます。 20Bin%20Bataye.mp3」.
ご覧のとおり、「%20」がたくさんあります。
URLをエスケープ解除したい。
サードパーティのライブラリを使用せずに Java でこれを行う方法はありますか?
URL の InputStream を介して xml を読み取り、URL 以外のすべてを切り取ると、" http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu%が得られます。 20Bin%20Bataye.mp3」.
ご覧のとおり、「%20」がたくさんあります。
URLをエスケープ解除したい。
サードパーティのライブラリを使用せずに Java でこれを行う方法はありますか?
これはエスケープされていない XML ではなく、URL エンコードされたテキストです。URL文字列で次を使用したいようです。
URLDecoder.decode(url);
これにより、正しいテキストが得られます。あなたが提供したようなものをデコードした結果はこれです。
http://cliveg.bu.edu/people/sganguly/player/ Rang De Basanti - Tu Bin Bataye.mp3
%20 はエスケープされたスペース文字です。上記を取得するために、URLDecoder オブジェクトを使用しました。
á
、é
、などの特殊文字がある場合、この方法を使用すると問題が発生しますí
。私の (おそらく野生の) 推測では、ワイド文字が適切にエンコードされていません。少なくとも、%uC2BF
代わりに%C2%BF
.
編集済み: 悪いことに、この投稿では、URL エンコーディングと JavaScript のエスケープ シーケンスの違いについて説明しています: Apache httpclient 4 の UNICODE での URI エンコーディング