Android 使用带有破折号的图像URL
我正在尝试从网站下载图像,我的代码在大多数情况下运行良好,但我无法从此URL的%20Blues%20-%20Such%20Sweet%20Thunder.jpg下载 这个URL和其他URL的区别在于,这个URL有一个破折号。我相当肯定这就是问题所在。有办法解决这个问题吗 我的错误是Android 使用带有破折号的图像URL,android,url,hyphen,Android,Url,Hyphen,我正在尝试从网站下载图像,我的代码在大多数情况下运行良好,但我无法从此URL的%20Blues%20-%20Such%20Sweet%20Thunder.jpg下载 这个URL和其他URL的区别在于,这个URL有一个破折号。我相当肯定这就是问题所在。有办法解决这个问题吗 我的错误是java.io.filenotfoundexception 我最初的代码是: imgLink = "http://www.liveandlocal.org.uk/images/ShowPics/" + Show + "
java.io.filenotfoundexception
我最初的代码是:
imgLink = "http://www.liveandlocal.org.uk/images/ShowPics/" + Show + ".jpg";
imgLink = imgLink.replace(" ", "%20");
这给了我如下链接:
这是可行的,但这对我在顶部发布的链接不起作用
所以现在我试着:
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";
这对我的任何链接都不起作用,例如
如果你在这篇文章的开头复制并粘贴链接到你的浏览器中,它会起作用,因此它在Android上不起作用。你的url包含不适合url的字母(
”
)。
您可以按以下方式对url进行编码:
String encodedUrl = URLEncoder.encode(normalUrl, "UTF-8");
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代码?只需复制您在我的浏览器的地址栏中提到的url并打开图像,然后再次从那里复制它就变成了http://www.liveandlocal.org.uk/images/ShowPics/Steiny%E2%80%99s%20Blues%20-%20Such%20Sweet%20Thunder.jpg
。现代浏览器自动在开头添加http://
,并在复制表单时替换空格和这些spl字符。。。