JavaでURLをエスケープ解除するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/623861

  •  05-07-2019
  •  | 
  •  

質問

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オブジェクトを使用しました。

他のヒント

URLDecoder.decode(String s)はJava 5以降廃止されました

URLDecoder.decode(String s、String enc)

例:

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

使用するエンコードについて:

  

注: World Wide Web Consortiumの勧告は、 UTF-8 を使用する必要があることを示しています。そうしないと、非互換性が生じる可能性があります。

á é í %C2%BFの代わりに%uC2BF のようなシーケンスが表示されることを期待していました

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top