title: Encode Image URL from spaces
body: <p>I'm developing a RSS reader app, but I'm facing problems with the image URLs becuase they contain spaces. I tried several techniques from these forums but they all give me different errors. I tried replacing the space with %20 but I'm getting file not found exception.
  This is the method in which I'm fetching the image:</p>
  
  <pre><code>//String ALLOWED_URI_CHARS = "@#&amp;=*+-_.,:!?()/~'%";
              //url = Uri.encode(url, ALLOWED_URI_CHARS);
              //URL urlnew = new URL(url);
              //URI uri = new URI(urlnew.getProtocol(), urlnew.getUserInfo(), urlnew.getHost(), urlnew.getPort(), urlnew.getPath(), urlnew.getQuery(), urlnew.getRef());
              //urlnew = uri.toURL();
              //url = URLEncoder.encode(url.replace(" ", "%20"), "utf-8");
              url = url.replaceAll(" ", "%20");
  
              Bitmap bitmap=null;
              URL imageUrl = new URL(url);
              HttpURLConnection conn = (HttpURLConnection)imageUrl.openConnection();
              conn.setDoInput(true);
              conn.setDoOutput(true);
              conn.setRequestMethod("GET");
              Log.i("Code:",conn.getResponseCode()+" "+conn.getResponseMessage());
              Log.i("Error Message",conn.getErrorStream()+"");
              conn.setConnectTimeout(30000);
              conn.setReadTimeout(30000);
              conn.setInstanceFollowRedirects(true);
              InputStream is=conn.getInputStream();
              OutputStream os = new FileOutputStream(f);
              Utils.CopyStream(is, os);
              os.close();
              conn.disconnect();
              bitmap = decodeFile(f);
              return bitmap;
  </code></pre>
  
  <p>The commented commands at the top are some commands I got from other people.
  LogCat:</p>
  
  <pre><code>02-20 13:58:19.015: W/System.err(29109): java.io.FileNotFoundException: http://ghadinews.net/upload/new/GhadiNews%20-%20parrot%20-%20ly.jpg
  02-20 13:58:19.015: W/System.err(29109):    at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177)
  02-20 13:58:19.015: W/System.err(29109):    at com.betaclass.ghadinews.ImageLoader.getBitmap(ImageLoader.java:94)
  02-20 13:58:19.015: W/System.err(29109):    at com.betaclass.ghadinews.ImageLoader.access$0(ImageLoader.java:63)
  02-20 13:58:19.015: W/System.err(29109):    at com.betaclass.ghadinews.ImageLoader$PhotosLoader.run(ImageLoader.java:168)
  02-20 13:58:19.020: W/System.err(29109):    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
  02-20 13:58:19.020: W/System.err(29109):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
  02-20 13:58:19.020: W/System.err(29109):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
  02-20 13:58:19.020: W/System.err(29109):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
  02-20 13:58:19.020: W/System.err(29109):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
  02-20 13:58:19.020: W/System.err(29109):    at java.lang.Thread.run(Thread.java:856)
  </code></pre>
  
  <p>If I insert the encoded URL which contains %20 into the browser the image opens normally so the links are working.</p>