Как я могу избежать испорченных языков при разархивировании файлов Unicode?

Часто бывает, что я вижу неизвестные имена файлов при распаковке zip-файлов.

Например,

 ╕╢╣¤└╟╝║-Bb└╠┴╢╛╟▒т┐ы-┼м╢є╕о│▌,┼╫│╩╗Ў╝╥╞∙ ╝╥╟┴╢є│ы╗Ў╝╥╞∙ ,╞о╖│╞ъ

Что может быть решением проблемы?

5 ответов

Для архивирования оригинальных файлов может использоваться корейская кодировка MS Windows cp-949. Пытаться unzip с опцией кодировки Windows.

unzip -O cp-949 <file.zip>

Примечание: я проверил профиль оригинального плаката, чтобы узнать, где он / она (Сеул, Южная Корея). Для других пользователей вы должны проверить происхождение zip и изменить кодировку соответственно.

Попробуйте использовать p7zip. (@Pilot6 упомянул, что p7zip не работает хорошо для кодировок, отличных от UTF-8, но если вам нужна только UTF-8, это простое решение.)

apt-get update
apt-get install p7zip-full
7z x thefile.zip -o"outputDir"

Если вы используете стандартный Ubuntu Archive Manager и Ubuntu версии 14.04+, это можно решить, установив исправленный Archive Manager (файл-ролик). Проблема в том, что file-roller использует p7zip для распаковки zip-архивов, если установлен p7zip-full. Но p7zip плохо справляется с кодировками не-UTF-8. Я исправил файл-ролик, чтобы всегда использовать unzip для этой цели. Сам распаковать был исправлен. Запатченный файл-ролик можно установить с моего ppa

sudo add-apt-repository ppa:hanipouspilot/file-roller
sudo apt-get update
sudo apt-get install file-roller

miniunzip в пакете minizip также, кажется, хорошо работает с именами не-ascii

Мне удалось двумя способами:

      unzip -O cp936 file.zip
unzip -O GBK file.zip
Другие вопросы по тегам