を使用すると次の警告が表示されますjava.net.URLEncoder.encode
。
警告:[非推奨] encode(java.lang.String) java.net.URLEncoderで非推奨になりました
代わりに何を使用する必要がありますか?
を使用すると次の警告が表示されますjava.net.URLEncoder.encode
。
警告:[非推奨] encode(java.lang.String) java.net.URLEncoderで非推奨になりました
代わりに何を使用する必要がありますか?
回答:
URLEncoderの他のencode
メソッドを使用します。
URLEncoder.encode(String, String)
最初のパラメーターはエンコードするテキストです。2番目は、使用する文字エンコーディングの名前です(例:)UTF-8
。例えば:
System.out.println(
URLEncoder.encode(
"urlParameterString",
java.nio.charset.StandardCharsets.UTF_8.toString()
)
);
StandardCharsets.US_ASCII
、StandardCharsets.UTF_8
残念ながら、などURLEncoder.encode
は受け付けていませんCharset
...(他の多くのmoethodsが行います)。
URLEncoder.encode(<urlStringToBeEncoded>, StandardCharsets.UTF_8.name())
。静的定数UTF_8
のtoString()
メソッドを文字エンコードスキームとして使用するjava.nio.charset.IllegalCharsetNameException: java.nio.charset.CharsetICU[UTF-8]
と、toString()
「java.nio.charset.CharsetICU [UTF-8]」が返されます。目的の「UTF-8」を取得するには、name()
代わりにそのメソッドを使用します。
クラスURLEncoderを使用します。
URLEncoder.encode(String s, String enc)
どこ :
s-翻訳する文字列。
enc-サポートされている文字エンコーディングの名前。
標準文字セット:
US-ASCII 7ビットASCII、別名ISO646-US、別名Unicode文字セットの基本ラテンブロックISO-8859-1 ISOラテンアルファベットNo. 1、別名ISO-LATIN-1
UTF-8 8ビットUCS変換フォーマット
UTF-16BE 16ビットUCS変換フォーマット、ビッグエンディアンバイトオーダー
UTF-16LE 16ビットUCS変換フォーマット、リトルエンディアンバイトオーダー
UTF-16 16ビットUCS変換フォーマット、オプションのバイト順マークで識別されるバイト順
例:
import java.net.URLEncoder;
String stringEncoded = URLEncoder.encode(
"This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");
最初のパラメータはエンコードする文字列です。2番目は、使用する文字エンコーディングの名前です(UTF-8など)。
他の応答の追加リファレンスとして、「UTF-8」を使用する代わりに、以下を使用できます。
HTTP.UTF_8
これは、Java 4以降、org.apache.http.protocolライブラリの一部として含まれています。これは、Android API 1以降にも含まれています。
org.apache.http.protocol.HTTP
クラスにあります。
の使用org.apache.commons.httpclient.URI
は厳密には問題ではありません。問題は、間違ったコンストラクタをターゲットにすることです。減価償却を。
ただ使う
new URI( [string] );
確かに減価償却済みとしてフラグを立てます。必要なのは、少なくとも1つの追加の引数(最初の、以下)と、理想的には2つの引数を提供することです。
escaped
:URI文字シーケンスがエスケープ形式の場合はtrue。それ以外の場合はfalse。charset
:必要に応じて、エンコーディングをエスケープする文字セット文字列これは、そのクラス内の非減価償却コンストラクターをターゲットにします。したがって、理想的な使用法は次のようになります。
new URI( [string], true, StandardCharsets.UTF_8.toString() );
- (11年以上の後に髪Aがゲームクレイジー-少し遅れエガド!、私はこれは遠端の方法がされている場合は特に、他の誰かを役に立てば幸い)、まだのような、URIを期待しますorg.apache.commons.httpclient.setURI()
。