我有一个如下所示的网址:
自由%21%20英尺%20Whiskey%20Pete%20-%20Thunderfist%20%28Original%20Mix%29.mp3
我正在尝试从中提取单词。现在,我正在为每个%20,%29等使用string.replace("%21", "!")
,因为每个段代表不同的字符或空格。有没有办法将这些符号和数字转换为它们实际意味着什么?
感谢。
答案 0 :(得分:7)
这些符号是URL中不合法存在的字符的URLEncoded表示。 (%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
答案 1 :(得分:2)
似乎输入字符串是使用URL编码编写的。您可以在Java中使用URLDecoder类,而不是手动编写所有可能的替换(您几乎无法涵盖所有可能性)。
String input = "Liberty%21%20ft.%20Whiskey%20Pete...";
String decoded = URLDecoder.decode(input, "UTF-8");