0

在我的应用程序中,我必须从 url 下载图像。但是我的网址中包含一些阿拉伯字符。所以我编码为 UTF-8 格式并尝试下载它,但它显示空指针警告,所以图像没有下载:

我的代码:

String urlDecode=URLDecoder.decode(urlpath,"UTF-8");
            Log.i("urlDecode", urlDecode);
            url = new URL(urlDecode);..

//          url = new URL(URLDecoder.decode(urlpath,"UTF-8"));
            System.out.println("url="+url);
            Bitmap bmp ;
//          try
//          {
            String filename = urlpath.substring(urlpath.lastIndexOf("/") + 1,
                    urlpath.length());
            bmp = BitmapFactory.decodeStream(url.openConnection()
                    .getInputStream());

我的网址是这样的:

http://vvvv.com/book_images/398_مقاصد _2الشريعة.jpg

我的日志猫:

06-27 11:46:19.868: W/System.err(18859): java.lang.NullPointerException
06-27 11:46:19.868: W/System.err(18859):    at DownloadString.DownloadImageFromURL(DownloadString.java:209)
06-27 11:46:19.868: W/System.err(18859):    at DownloadString.DownloadStringMethod(DownloadString.java:114)
06-27 11:46:19.868: W/System.err(18859):    at ThumbnailView$GetTask.doInBackground(ThumbnailView.java:797)
06-27 11:46:19.868: W/System.err(18859):    at ThumbnailView$GetTask.doInBackground(ThumbnailView.java:1)
06-27 11:46:19.868: W/System.err(18859):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-27 11:46:19.868: W/System.err(18859):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-27 11:46:19.868: W/System.err(18859):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-27 11:46:19.868: W/System.err(18859):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-27 11:46:19.868: W/System.err(18859):    at java.lang.Thread.run(Thread.java:856)

请帮我解决这个问题..提前谢谢..

4

1 回答 1

0

使用以下网络编码工具对阿拉伯语 URL 进行编码,然后硬编码到程序中的 url 并尝试
http://meyerweb.com/eric/tools/dencoder/

于 2013-06-27T11:37:33.800 回答