Что означает URL encoding и как это осуществить в Java
URL encoding (процентное кодирование) — это преобразование специальных символов и символов за пределами ASCII в URL-безопасный формат, где они заменяются на %XX (процент + hex-код). Это необходимо, потому что URL может содержать только ограниченный набор символов (латинские буквы, цифры, -, _, ., ~).
Пример: Hello мир! -> Hello%20%D0%BC%D0%B8%D1%80!
Кодирование и декодирование в Java
Пример
// Кодирование
String encoded = URLEncoder.encode("Hello мир!", StandardCharsets.UTF_8);
// Результат: "Hello+%D0%BC%D0%B8%D1%80%21"
// Декодирование
String decoded = URLDecoder.decode(encoded, StandardCharsets.UTF_8);
// Результат: "Hello мир!"
Важно: URLEncoder заменяет пробел на +, а не на %20. Это CGI-формат (application/x-www-form-urlencoded). Для кодирования компонентов URI (где пробел = %20) в Java 17+ можно использовать URI.create() или сторонние библиотеки.
На собеседовании: упомяните разницу между
+и%20для пробелов — это показывает глубокое понимание.URLEncoderпредназначен для формирования query-параметров, а не для кодирования всего URL целиком.