FileNotFoundException для URL, содержащего латинские символы

У меня проблемы с загрузкой картинок, которые содержат латинские символы, такие как: č, ć, š, đ, ž. Код работает безупречно для других ссылок, но когда он попадает на этот или любой другой, содержащий латинский символ:

InputStream input = null;
            try {
                URL url = new URL(http://www.novosti.rs/upload/thumbs/images/2012//09/28j/Supruga%20Gorana%20Savića_75x45.jpg);
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                conn.setDoInput(true);
                conn.connect();
                input = conn.getInputStream();
                Bitmap myBitmap = BitmapFactory.decodeStream(input);
                conn.disconnect();
                return myBitmap;
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            } finally {
                try {
                    input.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

Это бросает:

java.io.FileNotFoundException: http://www.novosti.rs/upload/thumbs/images/2012//09/28j/Supruga%20Gorana%20Savića_75x45.jpg

хотя вы можете попробовать скопировать ссылку на адресную строку, чтобы убедиться, что она действительна. Так что я могу сделать?

1 ответ

Решение

Попробуйте использовать URLEncoder.encode(String s, String charsetName) который преобразует специальные символы в % числовая форма с разделителями.

Смотрите документацию URLEncoder.

Другие вопросы по тегам