powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сохранение файла - кодировка
13 сообщений из 13, страница 1 из 1
Сохранение файла - кодировка
    #39380310
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С сервера приходят
Файлы, но коверкаются названия становятся, что-то типо

--;-2- --;L7-20B5;59, A-25@H82H8E 70 7040205-K9 -5@8-4 E-BL -4=C D8=0=A-2CN --5@0F8N 2 @07@575 AB@C-BC@=KE --4@0745;5=89_070117_141730

Помог UrlEncoder - но пробелы превратились в %20, как вернуть нормальные пробелы?
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39380326
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-но пробелы превратились в %20, как вернуть нормальные пробелы?
replase
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39380355
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя-=Koba=-но пробелы превратились в %20, как вернуть нормальные пробелы?
replase

Что за replase
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39380359
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-=Koba=-Помог UrlEncoder
скорее помог URLDecoder - вторым параметром в конструкторе кодировка указывается
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39380366
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-Что за replase
Код: java
1.
2.
3.
 int n = location.getPath().lastIndexOf("WEB-INF");
 web_location = location.getPath().substring(0, n);
 web_location = web_location.replaceAll("%20", " ");
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39380369
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... а ещё - %28, %29 и кучку других "non-save" символов.
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39380370
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174-=Koba=-Помог UrlEncoder
скорее помог URLDecoder - вторым параметром в конструкторе кодировка указывается

Да нет как раз после encoder браузер начал нормально сохранять кроме, пробел
ов
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39380377
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наиболее кошерно - Content-Disposition .
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39381261
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C %20 разобрался

Проблема, что в IE Opera стало работать
А в лисе не хочет, я уже пробовал

http://stackoverflow.com/questions/10407156/primefaces-filedownload-non-english-file-names-corrupt
http://stackoverflow.com/questions/5325322/java-servlet-download-filename-special-characters
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39384964
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Firefox решил так

http://stackoverflow.com/questions/18050718/utf-8-encoding-name-in-downloaded-file

FileDownloadActionListener из PrimeFace не учитывал это
Только теперь в Firefox ставил проставляться символы "_" спереди и сзади файла

Откуда они берутся?
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39384977
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил
externalContext.setResponseHeader("Content-Disposition", contentDispositionValue + ";filename*=\"utf8'ru-ru'"+ getReportFile().getName() + "\"");
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39539842
Faraday
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-=Koba=-, а полный код листнера какой? У меня такой и в Мозилле не работает все равно:
Код: 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.
//подготовка к скачиванию файла
    public void prepareFileToDownLoad(Filescommon filescommon) {
                
        byte[] buf = filescommon.getFiledata();
        ByteArrayInputStream bis = new ByteArrayInputStream(buf);
        String fn = filescommon.getFilename()+ filescommon.getFileras();
        String title = "filename";
        
        try {
            // Encoding
            title = URLEncoder.encode(fn, "UTF-8").replaceAll("\\+", "%20");
            FacesContext fc = FacesContext.getCurrentInstance();
            ExternalContext ec = fc.getExternalContext();
            ec.responseReset();
            ec.setResponseCharacterEncoding("UTF-8");
            ec.setResponseContentType("image/jpg");

            ec.setResponseHeader("Content-Disposition", "attachment; filename*=\"utf8'ru-ru'"+ title + "\""); 
                        
            fc.responseComplete();
                       
            
            
        } catch (UnsupportedEncodingException e1) {         
            e1.printStackTrace();
        }
       

        downLoadFile = new DefaultStreamedContent(bis, "image/jpg", title);

    }
...
Рейтинг: 0 / 0
Сохранение файла - кодировка
    #39540055
Faraday
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался как "обмануть" Firefox. Делаем так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
//подготовка к скачиванию файла
    public void prepareFileToDownLoad(Filescommon filescommon) {

        byte[] buf = filescommon.getFiledata();
        ByteArrayInputStream bis = new ByteArrayInputStream(buf);
        String fn = filescommon.getFilename() + filescommon.getFileras();
        String title = "filename";

        try {
            // Encoding
            title = URLEncoder.encode(fn, "UTF-8").replaceAll("\\+", "%20");            
            FacesContext fc = FacesContext.getCurrentInstance();
            ExternalContext ec = fc.getExternalContext();            
            HttpServletRequest request = (HttpServletRequest) ec.getRequest();
            String ua = request.getHeader("User-Agent");
            title = ua.contains("Firefox") ? MimeUtility.encodeWord(fn) : title;

        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }
        downLoadFile = new DefaultStreamedContent(bis, "image/jpg", title);
    }
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сохранение файла - кодировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]