私のURLから "ö"のような英語以外の文字をエスケープするには、404の応答エラーが発生することがあります。私はJavaを使用しています。私を助けてください。URLの英語以外の文字をエスケープする
答えて
をお試しくださいRFC3986(http://tools.ietf.org/html/rfc3986)で指定されているURLエンコーディングを使用します。また、見ていてください:http://en.wikipedia.org/wiki/Percent-encoding
をJavaはこれを行うには、いくつかの方法が用意されています
http://download.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.html
はISO-8859-1/15、UTF-8のような異なるエンコーディングに注意してください。これに応じて、 'ö'は%F6または& C3%D6(またはこのようなsth)にエンコードされます。
java.netパッケージでの使用のURLEncoder/URLDecoderの
私は同様の問題がありましたが、URLパスに 'ü'がありました。様々なSOの記事で実験の数時間後、私はこの(from here)を得た:
URL url = new URL(urlString);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
url = new URL(uri.toASCIIString());
トリックは、URLにURIを変換しています。ほとんどの回答はURI.toURL()メソッド呼び出しで終了しました。このメソッドは、空白文字と文字以外の文字を正しくエンコードしますが、ASCII以外の文字はエンコードしません。メソッドURI.toASCIIString()はその問題に対する答えです。
偉大な発見!ありがとう、魅力のような作品! (私はURLに埋め込まれたサイリル文字を持ち、URLEncoder.encode()はそれらをエンコードできませんでした)。 – dimsuz
URLをエンコードしますか? http://download.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html –