Кодировка текста
Перейти до навігації
Перейти до пошуку
Кракозябры и перекодировка: решение проблем с испорченным текстом в письмах, текстах и в именах файлов в Linux и Windows.
Кнвертировать все файлы .html во вложенных папках:
find . -name '*.html' | while read i; do iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp; mv tmp "$i"; done
Заменить в файлах .html строку указанием кодировки windows-1251 на UTF-8:
find . -name "*.html" -exec sh -c 'sed "s/windows-1251/UTF-8/g" "{}" > tmp && mv tmp "{}"' \;
Объединенная команда — конвертирует все .html файлы из windows-1251 в utf-8 и заменяет упоминание кодировки в тексте:
find . -name "*.html" -exec sh -c 'iconv -f WINDOWS-1251 -t UTF-8 "{}" > tmp && sed "s/windows-1251/UTF-8/g" tmp > "{}" && rm tmp' \;
Устарело
Если под Убунтой распаковать файл с кириллическим именем из архива (rar или zip), то получится файл с абракадаброй.
Для rar нужно указать кодировку:
unrar --enable-charset x archive.rar
Для zip есть два варианта. Первый - распаковать как есть и потом сконвертировать с помощью convmv:
unzip -S archive.zip convmv -f cp866 -t UTF-8 --notest *
Второй - обновить unzip на новый, с поддержкой i18n:
sudo add-apt-repository ppa:frol/zip-i18n sudo apt-get update sudo apt-get install libnatspec0 sudo apt-get install unzip p7zip-full
Пробуем:
unzip archive.zip
- http://proft.com.ua/2011/06/7/raspakovka-fajlov-s-kirillicheskimi-imenami-iz-rar/
- opennet.ru — Работа с русскими именами файлов в ZIP и UNZIP под *nix
В комментариях пишут, что есть лучшее решение — патчи от RusXMMS (см. ниже). - RusXMMS. Для ZIP нужно это: Unzip — перекодирует имена файлов при раз-архивации виндовых архивов.
- Патч для zip’а от dside.dyndns.org — для русского языка, не использующий библиотеку RusXMMS.