404応答エラーが発生するため、URLから「ö」などの英語以外の文字をエスケープするにはどうすればよいですか。私はJavaを使用しています。私を助けてください。
4 に答える
たとえば、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(またはこのように)にエンコードされます。
java.netパッケージのURLEncoder/URLDecoderを使用します
java.net.URLEncoderを試してください
同様の問題がありました。URLパスに「ü」がありました。さまざまなSO投稿を数時間試した後、私はこれを取得しました(ここから):
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());
トリックはURIをURLに変換することです。ほとんどの回答はURI.toURL()メソッド呼び出しで終わりました。このメソッドは空白と非文字を正しくエンコードしますが、非ASCII文字はエンコードしません。メソッドURI.toASCIIString()は、その問題に対する答えです。