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

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

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

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

谢谢。

【问题讨论】:

    标签: java android string url symbols


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 2016-11-22
      • 2018-08-16
      相关资源
      最近更新 更多