Android - удалить символы процентов URL из строки - PullRequest
3 голосов
/ 05 августа 2011

У меня есть URL, который выглядит так:

Свобода% 21% 20ft.% 20Whiskey% 20Pete% 20-% 20Thunderfist% 20% 28Original% 20Mix% 29.mp3

Я пытаюсь извлечь из него только слова. Прямо сейчас я использую string.replace("%21", "!") для каждого% 20,% 29 и т. Д., Потому что каждый сегмент представляет разные символы или пробелы. Есть ли способ просто преобразовать эти символы и цифры в то, что они на самом деле означают?

Спасибо.

Ответы [ 2 ]

7 голосов
/ 05 августа 2011

Эти символы представляют собой URLE-кодированные представления символов, которые не могут юридически существовать в URL-адресе. (% 20 = один пробел и т. Д.)

Вам необходимо UrlDecode этих строк:

http://icfun.blogspot.com/2009/08/java-urlencode-and-urldecode-options.html

Официальная документация здесь:
http://download.oracle.com/javase/6/docs/api/java/net/URLDecoder.html

2 голосов
/ 04 января 2017

Кажется, входная строка написана с использованием кодировки URL.Вместо того чтобы писать все возможные замены вручную (вы вряд ли сможете охватить все возможности), вы можете использовать класс URLDecoder в Java.

String input = "Liberty%21%20ft.%20Whiskey%20Pete...";
String decoded = URLDecoder.decode(input, "UTF-8");
...