Используя URL изображения, в котором есть тире - PullRequest
0 голосов
/ 05 февраля 2012

Я пытаюсь загрузить изображения с веб-сайта, и мой код в большинстве случаев работает нормально, но я не могу загрузить с этого URL http://www.liveandlocal.org.uk/images/ShowPics/Steiny’s%20Blues%20-%20Such%20Sweet%20Thunder.jpg

Разница между этим и другими 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.

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

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

у меня нормально работает, проверил, заменил символы соответственно на и '.

- в порядке.

0 голосов
/ 05 февраля 2012

Ваш URL содержит буквы, которые не подходят для URL (' в данном случае). Вы можете закодировать ваш URL следующим образом:

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

URLEncoder

...