Я только что проверил это для себя, используя предоставленную вами ссылку, и скачал файл, озаглавленный Thank You For You Project.zip, который мне пришлось распаковать, используя пароль 864 с 7-zip, и не обнаружил никаких проблем. У меня был правильный файл?
Проблема кодировки символов Zipfile
ПРИМЕЧАНИЕ. Этот вопрос отличается от распаковки ZIP с заданной кодировкой, поскольку ни одно из этих решений не работает, и я не уверен, что правильно функционирующая программа распаковки может даже получить правильное имя файла.
Существует zip-файл с именем файла символов японского языка. unzip
может указывать кодировки символов, которые обычно работают для получения правильных имен файлов. (В моем дистрибутиве его нет на странице man
или info
для распаковки, но в выводе справки исполняемого файла.)
Но это не работает для некоторых zip-файлов, включая этот. Это коллекция файлов для анимационной программы MikuMikuDance. Некоторые файлы имеют «мусорное» имя файла при использовании с unzip -O sjis -l archive.zip
или при распаковке с помощью file-roller.
Другой файл в архиве ссылается на имена мусорных файлов, хотя он относится к кодировке имени Shift-JIS, а не к UTF8. Он пытается загрузить эти файлы, поэтому, если они названы неправильно, они не могут загрузить. Вопрос здесь заключается в том, является ли zip-файл таким, чтобы правильные имена файлов могли быть извлечены другой программой, и были ли они правильно названы в системе загрузчика.
Желаемое имя файла: «Figure_ そ の 他 .fx» («other» на японском языке). Похоже, что в zip-файле есть два разных представления, одно из которых « », что означает SJIS, интерпретируемый как UTF8, а в других местах - U + 0082 и некоторые тайские символы:
Эта вторая версия является выводом из unzip, с или без -O sjis
опции. Кажется, нет никакого способа преобразовать это обратно в исходное имя файла.
Оригинальный zip-файл можно скачать здесь (25 МБ), а его содержимое можно открыть с помощью бесплатной программы MikuMikuDance, хотя для MikuMikuEffect используется файл «.fx», для работы которого требуется несколько собственных библиотек в Wine. Но, возможно, кто-то может ответить на этот вопрос без zip-файла.
Хранят ли zip-файлы альтернативное имя файла, которое обычно не используется? Отображаются ли обратные слэши в виде знаков иены на японских компьютерах, так или иначе связанных с тем, что имя файла не используется? Если вы возьмете строку, которая отображается как «Normalmap Effect \ Skin \ Figure_ ̑ .fx», и передадите ее по конвейеру iconv -f sjis -t utf8
, вы получите «Normalmap Effect ¥ Skin ¥ Figure_ そ の 他 .fx». Википедия говорит о «дополнительном поле»; это используется для хранения и извлечения «плохого» имени файла?
2 ответа на вопрос
Обратная косая черта, отображаемая в виде знаков иены, не связана. Второе имя файла - это имя файла UTF-8, как описано в разделах 4.5, 4.6 и Приложении D спецификации .ZIP .
В данном конкретном случае имя файла было передано программе упаковки в Shift-JIS, но программа упаковки упаковок предположила, что это ISO-8859-11 или TIS-620 (тайские кодировки). Предполагалось, что один из байтов ввода был преобразован или преобразован в другой символ в Unicode, что препятствует восстановлению правильного имени файла.
Когда используется дополнительное поле Info-ZIP Unicode Path, такие программы, как 7z или Info-ZIP, unzip
предполагают, что оно допустимо, и игнорируют поле основного имени файла и -O
параметр, используемый unzip
для установки исходной кодировки символов.
Сопровождающие программы, вероятно, приветствуют патч, который добавляет опцию для отмены этого поведения.
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4