Старая добрая проблема символов '«' и '»' в ZIP архивах TC

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Аватара пользователя
Mellomann
Сообщения: 709
Зарегистрирован: Пн сен 07, 2009 00:44

Старая добрая проблема символов '«' и '»' в ZIP архивах TC

Сообщение Mellomann »

Наткнулся давеча на хабре на статейку http://habrahabr.ru/post/261733/
Затронули старую добрую проблему костылей для не 437 кодировки в ZIP архивах.

Повторил у себя с настройкой в конфиге ZipUnicode=3 (т.е. принудительный уникод при >127).
Получается вообще эпично: Тотал ничего не теряет, кавычки на месте, Винрар тоже так же, 7зип на хабре тоже так же показался.
Но проводник с архивом от тотала (при такой настройке) - вообще нечто:
http://savepic.net/7009242.png

Суть моего вопроса: есть ли какой-то способ спаковать такой архив, чтобы и проводник видел, и каши из имён в нём же не было?
(как вариант: использовать 866 или 1251 вместо utf8, но чтоб без изменений на "<" ">")
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Проводник не ожидает, что имена будут в UTF-8, он по основному стандарту ожидает исключительно кодировку OEM. В свою очередь, в тотале для получения имён в кодировке OEM используется упомянутая функция CharToOem, которая заменяет ёлочки на знаки неравенства, и ничего тут не поделаешь.

Думаю, отображение пары непонятных символов вместо ёлочки в Проводнике - такая мелочь, что не стоит и париться. Открывает - и то ладно. Это если вообще забыть о том, что на дворе 2015 год, и уже лет 15 как существует открытый формат 7Z, почти во всём превосходящий старичка ZIP.
Аватара пользователя
Mellomann
Сообщения: 709
Зарегистрирован: Пн сен 07, 2009 00:44

Сообщение Mellomann »

Так то понятно, хорошо и на том спасибо, да только от zip пока в некоторых случаях никак не уйти.

А по поводу "открывает"...
Тот же 7zip не открывает файл "<тест>.txt" из zip архива, ибо пытается его с таким именем и доставать. Зато TC и Winrar - хитрят, заменяют имя на "_тест_.txt" и только потом вытаскивают.

И, ведь, не заставить никак их всех работать одинаково.
Печаль-тоска, пойду с горя насплюсь... :lol:
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Дык не надо делать имена "<тест>.txt", раз не все открывают, делай в UTF-8. Я ж говорю, чихать на Проводник, который показывает там вместо ёлочек по две закорючки, лишь бы открывал хоть как-нибудь.
Вот только боюсь, если Проводник неправильно интерпретирует ёлочки в имени папки *_files, он же по идее и сохраненную веб-страницу криво покажет...
Аватара пользователя
Omicron Persei 8
Сообщения: 11
Зарегистрирован: Вт мар 04, 2014 20:48

Сообщение Omicron Persei 8 »

Только вчера налетел на проблему. Внутренний упаковщик тотала при упаковке в zip заменяет тире на дефис. Вот это жопа. А распаковывает нормально. Надо раром или плагином 7зипом упаковывать, если тире может попасться или кавычки елочки. В этой теме выяснили как Total7zip плагин использовать для упаковки в простой zip вместо внутреннего упаковщика:
http://forum.wincmd.ru/viewtopic.php?t=15720

Насчет проводника хз, у меня старая xp сейчас под рукой, и там еще в реестре покоцано открытие папок (пришлось, т.к. проводник сильно подвисал после установки Sandboxie), файлы в зипе с тире и кавычками запакованные Total7zip вроде бы распаковывает, но меняет названия. Не пользуюсь проводником для распаковки.
Ответить