2012-09-23 29 views
0

我有一個網址:Android的網址,以獲取文件失敗

http://www.mubie.com/sites/default/files/imageifarm/紫薇.jpg 

現在,如果我嘗試獲取文件:

String url = "http://www.mubie.com/sites/default/files/imageifarm/紫薇.jpg"; //url is a string 
Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(url).getContent()); 

它拋出以下異常:

09-23 17:10:57.812: W/System.err(2059): java.io.FileNotFoundException: http://www.mubie.com/sites/default/files/imageifarm/紫薇.jpg 
09-23 17:10:57.812: W/System.err(2059):  at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177) 
09-23 17:10:57.812: W/System.err(2059):  at java.net.URLConnection$DefaultContentHandler.getContent(URLConnection.java:1042) 
09-23 17:10:57.812: W/System.err(2059):  at java.net.URLConnection.getContent(URLConnection.java:203) 
09-23 17:10:57.812: W/System.err(2059):  at java.net.URL.getContent(URL.java:447) 
09-23 17:10:57.822: W/System.err(2059):  at com.sora.insync.demo.ViewQuestion.loadImageFromNetwork(ViewQuestion.java:273) 

我該如何解決這個問題?將中文字符轉換爲unicode?

的URL(文件)是完全合法

我已經試過

Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(URLEncoder.encode(url, 
       "UTF8")).getContent()); 

,但它把網址是這樣的:

http%3A%2F%2Fwww.mubie.com%2Fsites%2Fdefault%2Ffiles%2Fimageifarm%2F%E7%B4%AB%E8%96%87.jpg 

回答

1

正如你可以看到,你的代碼在漢字上失敗了。你應該叫toASCIIString()你的URL字符串:

InputStream stream = (InputStream) new URL(url).toASCIIString().getContent(); 
Bitmap bitmap = BitmapFactory.decodeStream(stream); 
+1

的URL是一個字符串,請編輯您的答案:'新的URI(URL).toASCIIString()' – tom91136

+0

你說對了!記住它是錯誤的。 – tolgap