Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Как вернуть имена файлов?

Автор zwh, августа 2, 2021, 14:49

0 Пользователи и 1 гость просматривают эту тему.

zwh

Прислали на мыло толстый zip к картинками, открываю -- а там вот такое порево... Как можно побороть?



Хромис Красавец

Zip - какашка! Вечная проблема с кракозюберами.
Попробуй открыть архив бесплатным 7zip`ом. Он почти всегда правильно определяет кодировку.


zwh

Короче, оказалось, что так имена портятся под ХР, а дома у меня с недавних пор семерка. Произошла вышеописанная порча при скачивании папок с файлами через браузер из облака Мэйл.ру (перед таким скачиванием они автоматом пакуются в zip).

From_Odessa

Цитата: Хромис Красавец от августа  4, 2021, 17:57
Zip - какашка! Вечная проблема с кракозюберами.
А почему это происходит? Как технически объясняется? И в какой момент? В процессе архивирования?

Upliner

Цитата: From_Odessa от августа  5, 2021, 11:18
А почему это происходит? Как технически объясняется? И в какой момент? В процессе архивирования?
Да понятно же почему. Когда создавался формат zip, там просто не предусматривались имена файлов за пределами ASCII. В результате разные программы записывают туда русские буквы в разных кодировках, и одна программа не всегда может корректно прочитать запакованное другой.

Поддерживаю предложение открыть файл 7-zip -ом вместо ВинРара.
А Мозилла сильно тормозила, а ишак глюкавил через раз
И тогда явился к нам Konqueror, победил и спас на веки нас!

From_Odessa

Цитата: Upliner от августа  5, 2021, 11:22
Да понятно же почему. Когда создавался формат zip, там просто не предусматривались имена файлов за пределами ASCII. В результате разные программы записывают туда русские буквы в разных кодировках, и одна программа не всегда может корректно прочитать запакованное другой.
То есть, проблема только с кириллицей?

И возникает она уже при чтении архива?

А если распаковать, проблема остается? При распаковке имена файлов даются распаковывающей программой?

Upliner

Цитата: From_Odessa от августа  5, 2021, 11:24
То есть, проблема только с кириллицей?

И возникает она уже при чтении архива?

А если распаковать, проблема остается? При распаковке имена файлов даются распаковывающей программой?
На все вопросы -- да.
А Мозилла сильно тормозила, а ишак глюкавил через раз
И тогда явился к нам Konqueror, победил и спас на веки нас!

From_Odessa

Upliner, благодарю! :)

Заодно тогда спрошу: из-за чего у "Блокнота" иногда проблемы с кодировкой, и текст там превращается в непонятные символы?

Upliner

Цитата: From_Odessa от августа  5, 2021, 11:24И возникает она уже при чтении архива?
Однако насчёт этого вопроса можно всё-таки уточнить, что иногда и запаковывающая программа может не знать, как записывать русские буквы, и заменять их скажем, на ????. В таких случаях буквы уже никак не восстановить. Но вроде у ТСа не тот случай.
А Мозилла сильно тормозила, а ишак глюкавил через раз
И тогда явился к нам Konqueror, победил и спас на веки нас!

Upliner

Цитата: From_Odessa от августа  5, 2021, 11:26Заодно тогда спрошу: из-за чего у "Блокнота" иногда проблемы с кодировкой, и текст там превращается в непонятные символы?
Так то же самое. Скажем, в Досе и Винде используются разные кодировки, в Линуксе по умолчанию UTF-8, с которым в старых виндах были проблемы, но сейчас уже поправили, в сторонних програх могут ещё всякие использоваться. Вот в Notepad++ есть переключатель кодировок, там проблему решить проще.
А Мозилла сильно тормозила, а ишак глюкавил через раз
И тогда явился к нам Konqueror, победил и спас на веки нас!

СНовосиба

Цитата: From_Odessa от августа  5, 2021, 11:26из-за чего у "Блокнота" иногда проблемы с кодировкой, и текст там превращается в непонятные символы?
Блокнот пытается определить кодировку файла, и если в нем четное количество байт, иногда текст ошибочно распознается как написанный в Юникоде. Лечится добалением ключа /a к командной строке.

Upliner

Цитата: СНовосиба от августа  5, 2021, 11:40Блокнот пытается определить кодировку файла, и если в нем четное количество байт, иногда текст ошибочно распознается как написанный в Юникоде. Лечится добалением ключа /a к командной строке.
Можно же при открытии выбирать, но возможности выбора очень ограничены. Ключ /a равнозначен выбору ANSI, но это не всегда помогает.
А Мозилла сильно тормозила, а ишак глюкавил через раз
И тогда явился к нам Konqueror, победил и спас на веки нас!

СНовосиба

Цитата: Upliner от августа  5, 2021, 11:22В результате разные программы записывают туда русские буквы в разных кодировках, и одна программа не всегда может корректно прочитать запакованное другой.
Проблема с кодировками в ZIP была решена в 2006 году.

Upliner

Цитата: СНовосиба от августа  5, 2021, 12:21Проблема с кодировками в ZIP была решена в 2006 году.
А WinXP, в которой наблюдалась проблема, вышла в 2001.
А Мозилла сильно тормозила, а ишак глюкавил через раз
И тогда явился к нам Konqueror, победил и спас на веки нас!

СНовосиба

Цитата: Upliner от августа  5, 2021, 12:34А WinXP, в которой наблюдалась проблема, вышла в 2001.
WinXP не имеет никакого отношения к чтению архивов.

Upliner

Цитата: СНовосиба от августа  5, 2021, 12:36WinXP не имеет никакого отношения к чтению архивов.
Ну вообще-то там есть встроенная функция для запаковки и распаковки zip. Теоретически, //mail.ru мог паковать файлы, ориентируясь на неё.

Хотя согласен, скорее всего виноват старый WinRar.
А Мозилла сильно тормозила, а ишак глюкавил через раз
И тогда явился к нам Konqueror, победил и спас на веки нас!

Python

«Была решена в Νом году» еще не значит, что весь софт автоматически под это решение подстроился, и что даже после появления решения софт с нерешенной проблемой не продолжал создаваться. Более того, вполне возможна ситуация решения проблемы двумя разными производителями ПО двумя несовместимыми способами.
Цитата: СНовосиба от августа  5, 2021, 12:36
WinXP не имеет никакого отношения к чтению архивов.
Есть встроенная возможность открывать .zip-архивы как папки — так что имеет.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Upliner

Цитата: Python от августа  5, 2021, 12:44Более того, вполне возможна ситуация решения проблемы двумя разными производителями ПО двумя несовместимыми способами.
Ну, вообще-то СНовосиба имел в виду, что в 2006 году решение было стандартизировано, и соответственно с тех пор только один способ решения соответствует стандарту.
А Мозилла сильно тормозила, а ишак глюкавил через раз
И тогда явился к нам Konqueror, победил и спас на веки нас!

Python

Стандарт — всего лишь рекомендация для следующих разработок (на создание и распространение которых может пойти время). И он не решает проблем, например, с созданными прежде архивами, этому стандарту не соответствующими — если таковых накопилось достаточно много, разработчик ПО или администрация сайта может игнорировать стандарт ради совместимости с ними.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

From_Odessa

Offtop
Цитата: Python от августа  5, 2021, 13:21
на создание и распространение которых может пойти время
Заинтересовал вот этот языковой момент. Мне кажется, это украинизм, обусловленный украинским "піти", которое в данном случае соответствует русскому "уйти".

zwh

Цитата: Upliner от августа  5, 2021, 11:22
Цитата: From_Odessa от августа  5, 2021, 11:18
А почему это происходит? Как технически объясняется? И в какой момент? В процессе архивирования?
Да понятно же почему. Когда создавался формат zip, там просто не предусматривались имена файлов за пределами ASCII. В результате разные программы записывают туда русские буквы в разных кодировках, и одна программа не всегда может корректно прочитать запакованное другой.

Поддерживаю предложение открыть файл 7-zip -ом вместо ВинРара.
Пробовал FAR'ом -- была та же картина. Ладно, сейчас уже скачал в семерку, распаковал, унес на ХР-шный комп на флэшке.

Bhudh

Цитата: Upliner от августа  5, 2021, 11:32Вот в Notepad++ есть переключатель кодировок, там проблему решить проще.
Но иногда можно не угадать с кодировкой и потерять исходный текст. Так что экспериментировать лучше на копиях файлов.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Offtop
Цитата: From_Odessa от августа  5, 2021, 13:23
Offtop
Цитата: Python от августа  5, 2021, 13:21
на создание и распространение которых может пойти время
Заинтересовал вот этот языковой момент. Мне кажется, это украинизм, обусловленный украинским "піти", которое в данном случае соответствует русскому "уйти".
С точки зрения моего идеолекта русского, в данном контексте, «пошло время» — «было потрачено некоторое время», а «ушло время» — скорее, либо «было потрачен всё доступное время», либо «ушло безвозвратно»... В украинском такое различие не наблюдается — там только «пішов час».
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

From_Odessa

Offtop
Цитата: Python от августа  5, 2021, 17:08
С точки зрения моего идеолекта русского, в данном контексте, «пошло время» — «было потрачено некоторое время», а «ушло время» — скорее, либо «было потрачен всё доступное время», либо «ушло безвозвратно»... В украинском такое различие не наблюдается — там только «пішов час».
Мне незнакомо такое употребление в русском. Только "время пошло" в смысле 'начался отчет'. А если речь идет о затратах времени, то только "ушло", "уходить", но не "пошло", "пойти". Однако посмотрим, что скажут другие форумчане.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:

√49:
ALT+S — отправить
ALT+P — предварительный просмотр