Лучший способ справиться с этим - проанализировать URL-адрес с помощью java.net.URL
или java.net.URI
, а затем использовать соответствующие методы получения для извлечения необходимых компонентов. Они позаботятся о декодировании любых% -кодированных частей соответствующим образом.
Проблема с вашей текущей идеей заключается в том, что %80
не представляет "80"
или 80
. Скорее он представляет байт, который в дальнейшем необходимо интерпретировать в контексте кодировки символов URL-адреса. И если кодировка UTF-8, то за %80
должны следовать один или два байта, кодированных%% ... в противном случае это искаженное представление символа UTF-8.