我嘗試下載圖像中的以下網址:下載圖像URL中包含「E」
http://upload.tapcrowd.com//cache//_cp_100_100_stand_filière_300x212.jpg
正如你可以在瀏覽器這說明圖像看到,但在我的應用程序我得到一個FileNotFoundException。
但是,如果我將圖像的URL從「è」更改爲「e」。我可以成功將其下載到我的應用程序中。然而,這只是一個臨時解決方案,因爲它需要能夠使用unicode登錄下載圖像。
我該如何做到這一點?
方法用來下載圖片:
Bitmap bitmap = null;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is = conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f, maxheight, maxwidth);
結果代碼爲我的作品:
Bitmap bitmap = null;
int slashIndex = url.lastIndexOf('/');
String filename = url.substring(slashIndex + 1);
filename = URLEncoder.encode(filename, "UTF-8");
url = url.subSequence(0, slashIndex + 1) + filename;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is = conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f, maxheight, maxwidth);
可能是一個編碼問題。你需要urlencode你的路徑(部分後.com) – njzk2
我試過URLEncoder.encode(url);但沒有成功 – ePeace
您是否指定了編碼,或者您是否只使用了一個arg而使用了棄用的編碼? – ben75