Ситуации, когда нужно декодировать URL, возникают довольно часто. Например, есть строка, содержащая URL:
https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do%3Frequest_type
И задача заключается в том, чтобы преобразовать её в привычный вид:
https://mywebsite/docs/english/site/mybook.do?request_type
Формат, в котором представлен URL в первой строке, называется URL-кодированием или процент-кодированием. В этом формате некоторые символы заменяются на последовательности, состоящие из знака процента и двух шестнадцатеричных цифр. Например, %3A
соответствует двоеточию, а %2F
— символу слэша.
Java предоставляет удобные инструменты для декодирования подобных строк. Для этого можно использовать класс java.net.URLDecoder
и его статический метод decode()
. Вот пример кода, который декодирует URL:
import java.net.URLDecoder; import java.nio.charset.StandardCharsets; public class Example { public static void main(String[] args) { String url = "https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do%3Frequest_type"; String decodedUrl = URLDecoder.decode(url, StandardCharsets.UTF_8); System.out.println(decodedUrl); } }
В этом коде используется кодировка UTF-8, поскольку она обычно используется в интернете. Если URL был закодирован в другой кодировке, то её следует указать вместо StandardCharsets.UTF_8
.
Таким образом, декодирование URL в Java сводится к использованию одного статического метода класса java.net.URLDecoder
. Это простой и эффективный способ преобразовать URL из процент-кодирования в удобочитаемый вид.
Добавить комментарий