|
|
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
Исторически используются компоненты JCL (JEDI). Попался файл внутри которого при скачивании и открытии видно все по русски, но при разархивации через Delphi + JCL, в списке файлов через компонент JclCompressionItem.PackedName записана абракадабра, как если бы проблема с кодировкой. Как собственно имя файла внутри архива получить в валидном виде, кто работал с JCL или просто сконвертить WideString с правильным Encoding? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 17:50:48 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
Текст получаю такой 'xis+ddp+р'#$00AD'рјрёсђр°с‚с‹+р сѓр±+р‘рµр·рѕр°р»рёс‡рѕс‹р№ сђр°сѓс‡рµс‚+р¦рµрѕс‹ сѓ рґрѕсѓс‚р°рірєрѕр№+рњрјр›р¬рўр'#$0098'р‘р р•рќр”.txt' А нужен нормальный русский. TEncoding показывает MBCSEncoding. Что дальше делать пока не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 18:19:04 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
_Промешан_, Вроде похоже на UTF7 (если имя кирилическое). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 18:46:29 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
DarkMaster_Промешан_, Вроде похоже на UTF7 (если имя кирилическое). А как его в нормальный вид? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 19:07:37 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
В самом архиве через 7Zip если смотреть, то строка такая "XIS+DDP+Эмираты+Руб+Безналичный расчет+Цены с доставкой+МУЛЬТИБРЕНД.txt" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 19:11:50 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
Ну только все lowercase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 19:12:12 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
Не знаю насчёт JEDI, но насколько мне известно - в zip'ах может быть только два типа кодировки: однобайтная и UTF8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 19:34:48 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
alekcvpНе знаю насчёт JEDI, но насколько мне известно - в zip'ах может быть только два типа кодировки: однобайтная и UTF8. Ну видимо JEDI делает что то свое страшное. Допустим так и исходить если уже из этого. Но вопрос скорее как сконвертить абракадабру к нормальному виду... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 20:18:58 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
_Промешан_Но вопрос скорее как сконвертить абракадабру к нормальному виду... Мне кажется проще будет найти в исходниках место, где он читает эти имена и попробовать исправить ошибку. Ну или хотя-бы понять что оно делает не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 21:35:55 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
alekcvp насколько мне известно - в zip'ах может быть только два типа кодировки: однобайтная и UTF8. Не совсем верно . За JCL не скажу, надо сырцы или доки смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 22:08:45 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
Быстро глянул. JCL ничего сам не делает, это просто переходник к 7zip. С 7zip-ом общение идёт через интерфейсы, WideString (BSTR) и варианты. Так что проблемы с кодировкой не на стороне JCL или связки JCL-7zip. Итого, проблема в том, что 7zip не может верно прочитать .zip файл. Что с этим делать: - Паковать тем же, чем и распаковывать. - Иметь код с эвристикой на определение кодировки. - Иметь код, позволяющий вручную указывать кодировку. - Перевести кодировку вручную методом тыка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2017, 23:59:36 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
GunSmokeralekcvp насколько мне известно - в zip'ах может быть только два типа кодировки: однобайтная и UTF8. Не совсем верно . ANSI OEM CP437 (DOS Latin US) UTF-8 UTF-8 с флагом Как я и говорил - три однобайтные с разными кодировками и UTF-8. А всякие Extra-поля - это уже расширение стандарта, но в родных заголовках всё равно должны быть правильные имена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 09:49:10 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
GunSmokerЧто с этим делать: - Паковать тем же, чем и распаковывать. - Иметь код с эвристикой на определение кодировки. - Иметь код, позволяющий вручную указывать кодировку. - Перевести кодировку вручную методом тыка. Ну или заменить JEDI на, например, вот это . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 09:50:31 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
_Промешан_Исторически используются компоненты JCL (JEDI). Попался файл внутри которого при скачивании и открытии видно все по русски, но при разархивации через Delphi + JCL, в списке файлов через компонент JclCompressionItem.PackedName записана абракадабра, как если бы проблема с кодировкой. А можно, ради интереса, посмотреть на архив, если там не конфиденциальные данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 09:51:59 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
в родных заголовках всё равно должны быть правильные имена. :D наивный. Дело в том, что по стандарту там должна быть CP437 (DOS Latin US), что, очевидно, не выполняется практически никем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 12:21:47 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
GunSmokerв родных заголовках всё равно должны быть правильные имена. :D наивный. Дело в том, что по стандарту там должна быть CP437 (DOS Latin US), что, очевидно, не выполняется практически никем. Это DOS'овский стандарт, по современному стандарту там может быт UTF-8 и соответствующий флаг в General Purpose. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 13:07:56 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
DOS-ский стандарт 2006 года? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 14:31:16 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
GunSmokerDOS-ский стандарт 2006 года? :)) Нет, как раз в 2006м ввели поддержку юникода: https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.3.4.TXT Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 14:34:06 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
alekcvp, ты прикидываешься или танкист? Ну нет в реальном мире соблюдения стандарта ZIP. Не следуют ему программы, как бы тебе не хотелось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:42:44 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
GunSmoker, Ну так вот оттуда все проблемы и растут, что никто стандартам не следует. Как вариант - не пользоваться программами/компонентами, которые игнорируют стандарты, может тогда до их авторов начнёт доходить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:14:45 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
GunSmokerБыстро глянул. JCL ничего сам не делает, это просто переходник к 7zip. С 7zip-ом общение идёт через интерфейсы, WideString (BSTR) и варианты. Так что проблемы с кодировкой не на стороне JCL или связки JCL-7zip. Итого, проблема в том, что 7zip не может верно прочитать .zip файл. Что с этим делать: - Паковать тем же, чем и распаковывать. Увы, мы берем разные файлы. Кто их и чем пакует нам никогда не известно. - Иметь код с эвристикой на определение кодировки. Ну... Например если запихнуть полученную абракадабровую строку из WideString в StringStream, то StringStream.Encoding указывает на MBCSEncoding. Или о чем речь? - Перевести кодировку вручную методом тыка. Вот это посредством чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 19:30:18 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
alekcvp А можно, ради интереса, посмотреть на архив, если там не конфиденциальные данные? Говорит размер файла превышен. Могу на почту кинуть, это было бы более конечно правильно, чем вот так в инет. (3.5 метра) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 19:34:29 |
|
||
|
ZIP распаковка абракадабры. JEDI
|
|||
|---|---|---|---|
|
#18+
_Промешан_ alekcvp А можно, ради интереса, посмотреть на архив, если там не конфиденциальные данные? Говорит размер файла превышен. Могу на почту кинуть, это было бы более конечно правильно, чем вот так в инет. (3.5 метра) Ну если дропбокса нет, то почта - alekc.pub(собака)gmail(точка)com. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 21:57:58 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39560821&tid=2041497]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
179ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 441ms |

| 0 / 0 |
