[ @console @utf8 ]
Например из KOI8-R в UTF8.
Установить, если отсутствуют, две утилиты. Надо рекурсивно пройти по директории и найти все файлы (find), затем напустить на них перекодировщика (recode).
Имена всех доступных для перекодирования кодировок можно узнать выполнив команду recode -l.
find dir -type f -exec recode enc1..enc2 '{}' ';'
где
- dir — имя директории с файлами
- enc1 — исходная кодировка
- enc2 — целевая кодировка
Имена всех доступных для перекодирования кодировок можно узнать выполнив команду recode -l.
Если при открытии текстового файла на экран выводятся крокозябы, то это говорит о том, что данный файл создан в неправильной кодировке. В моем случае этот файл был создан в Windows в его "уникальной" кодировке CP1251, а открыть его требовалось в Ubuntu с "правильной" кодировкой UTF8.
Для того, чтобы произвести смену кодировки тестового файла с CP1251 на кодировку UTF8 нам понадобится пакет enca. Все ниже описанное будет приведено для дистрибутива Ubuntu, но алгоритм действий будет работать и в других дистрибутивах.
Смена кодировки текстового файла с CP1251 на UTF8
Устанавливаем необходимый пакет:
sudo apt install enca
Конвертируем один файл в кодировку локали дистрибутива, которая определяется автоматически:
enconv имя_файла
Вместо имя_файла должен находится полный путь до файла в кодировке CP1251, к примеру: enconv /home/user/1.txt
Если этих файлов окажется несколько, то команда выглядит несколько иначе:
find путь_к_директории -name "*.txt" -exec enconv {} \;
Или так:
find /home/astenix/ -name "*.txt" | enconv
Или так:
find /home/astenix/.LaTeXWorkspace/text/ -type f -exec recode cp1251/..UTF-8 '{}' ';'