Android-从字符串中删除 URL 百分比符号

Posted

技术标签:

【中文标题】Android-从字符串中删除 URL 百分比符号【英文标题】:Android- remove URL percent symbols from string 【发布时间】:2011-10-21 00:39:02 【问题描述】:

我有一个如下所示的网址:

Liberty%21%20ft.%20Whiskey%20Pete%20-%20Thunderfist%20%28Original%20Mix%29.mp3

我试图从中提取单词。现在,我对每个 %20、%29 等都使用string.replace("%21", "!"),因为每个段代表不同的字符或空格。有没有办法将这些符号和数字转换为它们的实际含义?

谢谢。

【问题讨论】:

【参考方案1】:

输入字符串似乎是使用 URL 编码编写的。您可以在 Java 中使用 URLDecoder 类,而不是手动编写所有可能的替换(您几乎无法涵盖所有​​可能性)。

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

【讨论】:

这实际上并没有回答问题,因为您没有解释为什么建议使用解码器而不是字符串替换以及符号和数字的含义。 @hotzst 对不起,我已经添加了为什么我认为这个答案是正确的解释。事实上,它与接受的答案完全相同。我为所有不想阅读那些外部网站的人写了这两行。【参考方案2】:

这些符号是 URLEncoded 表示的不能合法存在于 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

【讨论】:

以上是关于Android-从字符串中删除 URL 百分比符号的主要内容,如果未能解决你的问题,请参考以下文章

从 PowerBI 表的列中删除“%”符号

从 AngularJS url 中删除片段标识符(# 符号)

URL传参中不能带特殊的字符以及处理方案

当 URL 包含百分比符号时如何停止错误 400? (阿帕奇)

url 特殊字符

URL中%2F,%2B等特殊字符