Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
derec
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 74
#1

Подключение к странице с кириллическими каталогами - Программирование Android

19.07.2014, 16:09. Просмотров 386. Ответов 1
Метки нет (Все метки)

Здравствуйте, пытаюсь скачать файл с сервера который имеет вид
http://***.ru/grupp/зима/IMG_20140717_225039.jpg

пользовался и этим
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public String grabImageFromUrl(String url, String path) {
     try {
            InputStream is = (InputStream) new URL(url).getContent();
 
            System.out.println(path);
            System.out.println(url);
            File f = new File(path);
            
            f.createNewFile();
            FileOutputStream fos = new FileOutputStream(f);
            try {
 
                byte[] b = new byte[100];
                int l = 0;
                while ((l = is.read(b)) != -1)
                    fos.write(b, 0, l);
 
            } catch (Exception e) {
e.printStackTrace();
            }
            System.out.println(fos.getChannel().size());
            System.out.println(f.getAbsolutePath());
            return f.getAbsolutePath();
        } catch (Exception e) {
            System.out.println("Exc=" + e);
            return null;
 
        }
}
и этим
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
private void downloadFile(String url, String path) {
      final ProgressDialog progressDialog = new ProgressDialog(this);
     
      new AsyncTask<String, Integer, File>() {
       private Exception m_error = null;
     
       @Override
       protected void onPreExecute() {
        progressDialog.setMessage("Downloading ...");
        progressDialog.setCancelable(false);
        progressDialog.setMax(100);
        progressDialog
          .setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
     
        progressDialog.show();
       }
     
       @Override
       protected File doInBackground(String... params) {
        URL url;
        HttpURLConnection urlConnection;
        InputStream inputStream;
        int totalSize;
        int downloadedSize;
        byte[] buffer;
        int bufferLength;
     
        File file = new File(params[1]);
        FileOutputStream fos = null;
     
        try {
         url = new URL(params[0]);
            
         urlConnection = (HttpURLConnection) url.openConnection();
     
         urlConnection.connect();
     
         file.createNewFile();
         fos = new FileOutputStream(file);
         inputStream = urlConnection.getInputStream();
     
         totalSize = urlConnection.getContentLength();
         downloadedSize = 0;
     Log.d("soska", totalSize+" "+params[0]);
         buffer = new byte[1024];
         bufferLength = 0;
     
         // читаем со входа и пишем в выход, 
         // с каждой итерацией публикуем прогресс
         while ((bufferLength = inputStream.read(buffer)) > 0) {
          fos.write(buffer, 0, bufferLength);
          downloadedSize += bufferLength;
          publishProgress(downloadedSize, totalSize);
         }
     
         fos.close();
         inputStream.close();
     
         return file;
        } catch (MalformedURLException e) {
         e.printStackTrace();
         m_error = e;
        } catch (IOException e) {
         e.printStackTrace();
         m_error = e;
        }
     
        return null;
       }
     
       // обновляем progressDialog
       protected void onProgressUpdate(Integer... values) {
        progressDialog
          .setProgress((int) ((values[0] / (float) values[1]) * 100));
       };
     
       @Override
       protected void onPostExecute(File file) {
        // отображаем сообщение, если возникла ошибка
        if (m_error != null) {
         m_error.printStackTrace();
         return;
        }
        // закрываем прогресс и удаляем временный файл
        progressDialog.hide();
        //file.delete();
       }
      }.execute(url,path);
     }
результат один и тот же файл не скачивался.
но если выбрать путь без кириллицы, то есть
http://***.ru/grupp/winter/IMG_20140717_225039.jpg
то загрузка идет.
значит проблема при подключение с русскими буквами..
как исправить??
мне нужно обязательно поддержку русского.
я думаю проблема где-то здесь:
Java
1
2
3
4
5
  url = new URL(params[0]);
            
         urlConnection = (HttpURLConnection) url.openConnection();
     
         urlConnection.connect();
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2014, 16:09     Подключение к странице с кириллическими каталогами
Посмотрите здесь:

Заменить все относительные ссылки на странице - Программирование Android
Здравствуйте. Есть текст со ссылками, часть из них относительные, часть абсолютные. В виде &lt;a href=&quot;&quot;&gt;... Нужно найти относительные...

Подключение стилей к странице - HTML, CSS
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Флексагон&lt;/title&gt; ...

Подключение скрипта к странице - HTML, CSS
День добрый. Никак не могу подключить данный скрит к сайту: http://osvaldas.info/image-lightbox-responsive-touch-friendly Следую...

Подключение БД к странице созданной с MP - C# ASP.NET
Проблема в следующем пытаюсь вывести содержание БД на страничку с MP бьет ошибку - на странице может быть один элемент form - когда вывожу...

Путь с кириллическими символами - CMD/BAT
как мне выйти на рабочий стол (в частности) с помощью ват. cd не выходи

.NET 4.x Работа с кириллическими доменами - C#
Здравствуйте. Совсем недавно была открыта регистрация доменов в зоне .рф и в связи с этим возникает вопрос: &quot;А как собственно работать с...

Подключение скриптов на определенной странице - Ruby on Rails
Использую turbolinks на определенной странице я подключаю js библиотеки которые нужны только на этой странице. Если эта страница была...

Разница между кириллическими кодировками - PHP БД
Не могу разобраться: в чем разница между кодировками: cp1251_bin и cp1251_general_cs? Создается впечатление что они идентичны, хотя и...

Подключение php скрипта к HTML странице - PHP
Пожалуйста помогите решить проблему. Есть HTML страничка с таким вот куском кода. &lt;div class=&quot;message&quot;&gt; ...

Подключение файлов javascript на jsp-странице - Java
Здравствуйте, пытаюсь подключить js файл в jsp, файл находится в src/main/resources/js/ Подключал в jsp что так: &lt;script...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
20.07.2014, 14:02     Подключение к странице с кириллическими каталогами #2
Java
1
InputStream is = (InputStream) new URL(URLEncoder.encode(url, "UTF-8")).getContent();
Попробуйте так
Yandex
Объявления
20.07.2014, 14:02     Подключение к странице с кириллическими каталогами
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru