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

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

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

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

Ответ 1

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

URLEncoder.encode(String, String)

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

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

Ответ 2

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

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

Ответ 3

Используйте класс URLEncoder:

URLEncoder.encode(String s, String enc)

Где:

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

enc - имя поддерживаемой кодировки символов.

Стандартные кодировки:

US-ASCII Семибитовый ASCII, a.k.a. ISO646-US, a.k.a. Основной латинский блок набора символов Unicode ISO-8859-1 ISO Latin Alphabet № 1, a.k.a. ISO-LATIN-1

UTF-8 8-битный формат преобразования UCS

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

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

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

Пример:

import java.net.URLEncoder;

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

Ответ 4

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

Ответ 5

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

HTTP.UTF_8

который включен, поскольку Java 4 входит в состав библиотеки org.apache.http.protocol, которая включена также с Android API 1.