【问题标题】:Using image URL which has dashes in it使用包含破折号的图像 URL
【发布时间】:2012-02-05 12:35:58
【问题描述】:

我正在尝试从网站下载图像,并且我的代码在大多数情况下都可以正常工作,但我无法从该 URL http://www.liveandlocal.org.uk/images/ShowPics/Steiny's%20Blues%20-%20Such%20Sweet%20Thunder.jpg 下载

这个和其他 URL 的区别在于这个 URL 有一个破折号。我相当肯定这是问题所在。有没有办法解决这个问题?

我的错误是java.io.filenotfoundexception

我的初始代码是:

imgLink = "http://www.liveandlocal.org.uk/images/ShowPics/" + Show + ".jpg";
imgLink = imgLink.replace(" ", "%20"); 

这给了我这样的链接:http://www.liveandlocal.org.uk/images/ShowPics/The%20Atlantics.jpg 这可行,但这不适用于我在顶部发布的链接。

所以现在我已经尝试过了:

try {
    Show = URLEncoder.encode(Show, "UTF-8");
} catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
imgLink = "http://www.liveandlocal.org.uk/images/ShowPics/" + Show + ".jpg";

这不适用于我的任何链接,例如http://www.liveandlocal.org.uk/images/ShowPics/The+Atlantics.jpg

如果您将本文开头的链接复制并粘贴到您的浏览器中,它将可以正常工作,因此无法在 Android 上运行。

【问题讨论】:

  • 看起来' 破坏了它,而不是-。你urlencoded了吗?
  • 我想也许我们需要看看你的代码。你怎么看?
  • 我已经编辑了我的帖子以包含代码 - 也尝试了迈克尔的回答 - 没有用

标签: android url hyphen


【解决方案1】:

imgLink = "http://www.liveandlocal.org.uk/images/ShowPics/Steiny%E2%80%99s%20Blues%20-%20Such%20Sweet%20Thunder.jpg"

对我来说工作正常,经过测试,相应地替换字符 '

- 很好。

【讨论】:

  • 太好了,现在一切正常。我只是使用 .replace 将“”更改为 %20,将“'”更改为 %E2%80%99。有没有更好的方法来做到这一点?您从哪里找到 %E2%80%99 代码?
  • 刚刚复制了您在我的浏览器地址栏中提到的网址并打开了图像,然后再次从那里复制它变成了http://www.liveandlocal.org.uk/images/ShowPics/Steiny%E2%80%99s%20Blues%20-%20Such%20Sweet%20Thunder.jpg。现代浏览器会自动在开头添加http://,并在您复制它们时替换空格和这些 spl 字符...
【解决方案2】:

您的网址包含不适合网址的字母(在这种情况下为')。 您可以将您的网址编码如下:

String encodedUrl = URLEncoder.encode(normalUrl, "UTF-8");

URLEncoder

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 2016-05-08
    相关资源
    最近更新 更多