java.net .URLEncoder.encode(строка) устарел, что я должен использовать вместо этого?
-
03-07-2019 - |
Вопрос
Я получаю следующее предупреждение при использовании java.net.URLEncoder.encode
:
warning: [deprecation] encode(java.lang.String) in java.net.URLEncoder has been deprecated
Что я должен использовать вместо этого?
Решение
Используйте другой метод 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 ( кодер URL ):
URLEncoder.encode(String s, String enc)
Где :
s - Строка, подлежащая переводу.
enc - Имя поддерживаемого кодировка символов.
Стандартные кодировки:
US-ASCII Семибитный ASCII, он же.ISO646-US, он же.базовый латинский блок набора символов Unicode ISO-8859-1 Номер латинского алфавита ISO.1, он же.ISO-ЛАТИНИЦА-1
UTF-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");
Первый параметр - это строка для кодирования; вторая - это имя используемой кодировки символов (например, UTF-8).
В качестве дополнительной ссылки для других ответов вместо использования " UTF-8 " вы можете использовать:
HTTP.UTF_8
который включен с Java 4 как часть библиотеки org.apache.http.protocol, который включен также с Android API 1.