java. net. URLEncoder. encode(String) является устаревшим, что я должен использовать вместо этого?


Я получаю следующее предупреждение при использовании java.net.URLEncoder.encode:

warning: [deprecation] encode(java.lang.String)
         in java.net.URLEncoder has been deprecated

что я должен использовать вместо?

5 161

5 ответов:

использовать другие encode метод URLEncoder:

URLEncoder.encode(String, String)

первый параметр-это кодируемый текст; второй-имя используемой кодировки символов (например,UTF-8). Например:

System.out.println(
  URLEncoder.encode(
    "urlParameterString",
    java.nio.charset.StandardCharsets.UTF_8.toString()
  )
);

вы должны использовать:

URLEncoder.encode("NAME", "UTF-8");

использовать класс URLEncoder:

URLEncoder.encode(String s, String enc)

где :

s - строка для перевода.

enc - имя поддерживаемого кодировка.

стандартные наборы символов:

US-ASCII семь-битовый ASCII, а.к.а. ISO646-США.к.а. основной латинского блока Юникод набор символов Стандарт ISO-8859-1 ИСО латинский алфавит № 1, а.к.а. ИСО-ЛАТИНСКОЙ-1

UTF-8 восьмиразрядный формат преобразования ПСК

UTF-16BE Шестнадцатиразрядный формат преобразования UCS, порядок байтов big-endian

UTF-16LE Шестнадцатиразрядный формат преобразования UCS, порядок байтов с малым концом

UTF-16 Шестнадцатиразрядный формат преобразования ПСК, порядок байтов определенный опционным Знак порядка байтов

пример:

import java.net.URLEncoder;

String stringEncoded = URLEncoder.encode(
    "This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");

первый параметр-строка для кодирования; второй-имя используемой кодировки символов (например, UTF-8).

в качестве дополнительной ссылки для других ответов, вместо использования "UTF-8" вы можете использовать:

HTTP.UTF_8

который включен с Java 4 как часть организации.апаш.http.библиотека протоколов, которая включена также с Android API 1.