Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> unzip: проблема с русскими символами 
V
    Опции темы
Entry_N3
  Дата 22.2.2007, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 446
Регистрация: 8.2.2007

Репутация: нет
Всего: нет



Как решить следующую проблему: если распаковать zip-файл представленным ниже кодом, то папки, в названии которых русские символы, распаковываются в непонятной кодировке (например, в zip`е "Папка", а после распаковки " ¯ª" )?

Код

import java.io.*;
import java.util.*;
import java.util.zip.*;

public class Unzip {

    public static void main(String[] a) throws IOException {
        String zipFile = "C:\\test_unzip\\id55555.zip";
        String targetDirectory = "C:\\test_unzip";
        
        ZipFile zipFl = new ZipFile(zipFile);
        Enumeration enumZipEntries = zipFl.entries();
        while (enumZipEntries.hasMoreElements()) {
            ZipEntry zipEntry = (ZipEntry) enumZipEntries.nextElement();
            String entryName = zipEntry.getName();
            //System.out.println(entryName);

            StringBuffer bufPath = new StringBuffer(32);
            String pathSep = System.getProperty("file.separator");
            if (targetDirectory.endsWith(pathSep)) {
                targetDirectory = targetDirectory.substring(0, targetDirectory
                        .length() - 1);
            }
            if (entryName.startsWith(pathSep)) {
                entryName = entryName.substring(1);
            }
            bufPath.append(targetDirectory);
            bufPath.append(pathSep);
            bufPath.append(entryName);
            String entryFullPath = bufPath.toString();
            File entryFile = new File(entryFullPath);
            // System.out.println("Full Entry Path: " +
            // entryFile.getAbsolutePath());
            if (zipEntry.isDirectory()) {
                entryFile.mkdirs();
            } else {
                File entryFileParent = entryFile.getParentFile();
                entryFileParent.mkdirs();
                FileOutputStream fout = new FileOutputStream(entryFile);
                BufferedOutputStream bufOut = new BufferedOutputStream(fout);
                InputStream is = zipFl.getInputStream(zipEntry);
                byte[] buf = new byte[1024];
                int numRead = 0;
                while ((numRead = is.read(buf)) != -1) {
                    bufOut.write(buf, 0, numRead);
                }
                bufOut.close();
            }
        }

    }
}


PM MAIL   Вверх
Entry_N3
Дата 12.3.2007, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 446
Регистрация: 8.2.2007

Репутация: нет
Всего: нет



Решил проблему с помощью пакета org.apache.tools.zip из ant.jar 

Подробнее в этой теме http://forum.vingrad.ru/topic-140786.html
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0685 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.