Unicode 文字を含む URL を (正しく) エンコードする Android クラスはありますか? 例えば:
Blue Öyster Cult
java.net.URI を使用して次のように変換されます。
uri.toString()
(java.lang.String) Blue%20Öyster%20Cult
Ö 文字はエンコードされません。使用URLEncoder
:
URLEncoder.encode("Blue Öyster Cult", "UTF-8").toString()
(java.lang.String) Blue+%C3%96yster+Cult
エンコードしすぎます (つまり、スペースが "+" になり、パス セパレータ "/" が %2F になります)。Dolphin Web ブラウザーで Unicode 文字を含むリンクをクリックすると、正しく動作するので、明らかにこれを行うことができます。しかし、上記の文字列のいずれかを使用して HttpURLConnection を開こうとすると、HTTP 404 Not Found
例外が発生します。