powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ZIP распаковка абракадабры. JEDI
23 сообщений из 23, страница 1 из 1
ZIP распаковка абракадабры. JEDI
    #39560763
_Промешан_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исторически используются компоненты JCL (JEDI).
Попался файл внутри которого при скачивании и открытии видно все по русски, но при разархивации через Delphi + JCL, в списке файлов через компонент JclCompressionItem.PackedName записана абракадабра, как если бы проблема с кодировкой.

Как собственно имя файла внутри архива получить в валидном виде, кто работал с JCL или просто сконвертить WideString с правильным Encoding?
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560779
_Промешан_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Текст получаю такой

'xis+ddp+р'#$00AD'рјрёсђр°с‚с‹+р сѓр±+р‘рµр·рѕр°р»рёс‡рѕс‹р№ сђр°сѓс‡рµс‚+р¦рµрѕс‹ сѓ рґрѕсѓс‚р°рірєрѕр№+рњрјр›р¬рўр'#$0098'р‘р р•рќр”.txt'


А нужен нормальный русский.

TEncoding показывает MBCSEncoding. Что дальше делать пока не понял
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560802
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Промешан_,

Вроде похоже на UTF7 (если имя кирилическое).
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560817
_Промешан_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster_Промешан_,

Вроде похоже на UTF7 (если имя кирилическое).

А как его в нормальный вид?
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560820
_Промешан_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В самом архиве через 7Zip если смотреть, то строка такая
"XIS+DDP+Эмираты+Руб+Безналичный расчет+Цены с доставкой+МУЛЬТИБРЕНД.txt"
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560821
_Промешан_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну только все lowercase
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560829
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю насчёт JEDI, но насколько мне известно - в zip'ах может быть только два типа кодировки: однобайтная и UTF8.
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560855
_Промешан_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvpНе знаю насчёт JEDI, но насколько мне известно - в zip'ах может быть только два типа кодировки: однобайтная и UTF8.

Ну видимо JEDI делает что то свое страшное. Допустим так и исходить если уже из этого.

Но вопрос скорее как сконвертить абракадабру к нормальному виду...
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560880
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Промешан_Но вопрос скорее как сконвертить абракадабру к нормальному виду...
Мне кажется проще будет найти в исходниках место, где он читает эти имена и попробовать исправить ошибку. Ну или хотя-бы понять что оно делает не так.
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560894
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp насколько мне известно - в zip'ах может быть только два типа кодировки: однобайтная и UTF8.

Не совсем верно .

За JCL не скажу, надо сырцы или доки смотреть.
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39560943
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Быстро глянул. JCL ничего сам не делает, это просто переходник к 7zip. С 7zip-ом общение идёт через интерфейсы, WideString (BSTR) и варианты. Так что проблемы с кодировкой не на стороне JCL или связки JCL-7zip. Итого, проблема в том, что 7zip не может верно прочитать .zip файл.

Что с этим делать:
- Паковать тем же, чем и распаковывать.
- Иметь код с эвристикой на определение кодировки.
- Иметь код, позволяющий вручную указывать кодировку.
- Перевести кодировку вручную методом тыка.
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561051
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmokeralekcvp насколько мне известно - в zip'ах может быть только два типа кодировки: однобайтная и UTF8.
Не совсем верно .

ANSI
OEM
CP437 (DOS Latin US)
UTF-8
UTF-8 с флагом
Как я и говорил - три однобайтные с разными кодировками и UTF-8. А всякие Extra-поля - это уже расширение стандарта, но в родных заголовках всё равно должны быть правильные имена.
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561053
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmokerЧто с этим делать:
- Паковать тем же, чем и распаковывать.
- Иметь код с эвристикой на определение кодировки.
- Иметь код, позволяющий вручную указывать кодировку.
- Перевести кодировку вручную методом тыка.
Ну или заменить JEDI на, например, вот это .
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561056
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Промешан_Исторически используются компоненты JCL (JEDI).
Попался файл внутри которого при скачивании и открытии видно все по русски, но при разархивации через Delphi + JCL, в списке файлов через компонент JclCompressionItem.PackedName записана абракадабра, как если бы проблема с кодировкой.

А можно, ради интереса, посмотреть на архив, если там не конфиденциальные данные?
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561177
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в родных заголовках всё равно должны быть правильные имена.

:D наивный.

Дело в том, что по стандарту там должна быть CP437 (DOS Latin US), что, очевидно, не выполняется практически никем.
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561222
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmokerв родных заголовках всё равно должны быть правильные имена.
:D наивный.
Дело в том, что по стандарту там должна быть CP437 (DOS Latin US), что, очевидно, не выполняется практически никем.
Это DOS'овский стандарт, по современному стандарту там может быт UTF-8 и соответствующий флаг в General Purpose.
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561287
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DOS-ский стандарт 2006 года? :))
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561289
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmokerDOS-ский стандарт 2006 года? :))
Нет, как раз в 2006м ввели поддержку юникода:

https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.3.4.TXT
Код: plaintext
1.
2.
3.
4.
 6.3.0         - Added tape positioning storage           09/29/2006 
                  parameters
...
               - Added option for Unicode filename 
                  storage 
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561354
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp, ты прикидываешься или танкист? Ну нет в реальном мире соблюдения стандарта ZIP. Не следуют ему программы, как бы тебе не хотелось.
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561390
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker,
Ну так вот оттуда все проблемы и растут, что никто стандартам не следует. Как вариант - не пользоваться программами/компонентами, которые игнорируют стандарты, может тогда до их авторов начнёт доходить.
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561579
_Промешан_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GunSmokerБыстро глянул. JCL ничего сам не делает, это просто переходник к 7zip. С 7zip-ом общение идёт через интерфейсы, WideString (BSTR) и варианты. Так что проблемы с кодировкой не на стороне JCL или связки JCL-7zip. Итого, проблема в том, что 7zip не может верно прочитать .zip файл.

Что с этим делать:
- Паковать тем же, чем и распаковывать.
Увы, мы берем разные файлы. Кто их и чем пакует нам никогда не известно.

- Иметь код с эвристикой на определение кодировки.
Ну... Например если запихнуть полученную абракадабровую строку из WideString в StringStream, то StringStream.Encoding указывает на MBCSEncoding. Или о чем речь?

- Перевести кодировку вручную методом тыка.
Вот это посредством чего?
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561581
_Промешан_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp
А можно, ради интереса, посмотреть на архив, если там не конфиденциальные данные?
Говорит размер файла превышен. Могу на почту кинуть, это было бы более конечно правильно, чем вот так в инет. (3.5 метра)
...
Рейтинг: 0 / 0
ZIP распаковка абракадабры. JEDI
    #39561621
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Промешан_ alekcvp
А можно, ради интереса, посмотреть на архив, если там не конфиденциальные данные?
Говорит размер файла превышен. Могу на почту кинуть, это было бы более конечно правильно, чем вот так в инет. (3.5 метра)
Ну если дропбокса нет, то почта - alekc.pub(собака)gmail(точка)com.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ZIP распаковка абракадабры. JEDI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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