Как я могу избежать испорченных языков при разархивировании файлов 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