Темы
Перекодировка текстовых файлов
Перекодировка имён файлов
Преобразование тегов в аудиофайлах
Преобразование форматов графики
Преобразовать HEX в текст
Преобразовать Base64 в текст
Перекодировка текстовых файлов
В Windows по умолчанию используется кодировка символов CP1251, чем иногда доставляет проблем пользователям других, нормальных ОС, которые давно перешли на юникод и забыли о проблемах с кодировками как страшный сон. Но пользователи Windows как американцы, не знают, что существуют другие страны ОС и сохраняют субтитры в CP1251 что делает их нечитабельными для других.
Для решения этой проблемы есть iconv который как раз и служит для перекодировки текстовых файлов из одной кодировки в другую. Во всех почти дистрибутивах данный пакет устанавливается по умолчанию, но если его вдруг не оказалось - установите его с помощью вашего пакетного
менеджера.
Для перекодировки достаточно ввести всего одну команду в терминале, а именно:
- Код: выделить все
iconv -f cp1251 -t utf8 /Video/somefile.srt -o /Video/subtitles.srt
Поясню: ключ "f" задает исходную кодировку в которой файл находится сейчас, ключ "t" указывает целевую кодировку, ключ "o" задает путь для сохранения перекодированного файла.
Вот, все очень просто. Так же вы можете таким образом кодировать любые текстовые файлы. Часто и тексты песен попадаются с такой неприятной особенностью.
Недавно узнал более простой и понятный способ перекодировки текстовых файлов - с помощью enconv.
Не буду приводить полного синтаксиса и описания всех ключей. Для перекодировки достаточно одного, например:
- Код: выделить все
enconv -x UTF-8 somefile.txt
С помощью данной команды мы перегнали текст в UTF-8. Да, именно, просто перегнали без необходимости указания исходной кодировки. Все просто, указываем лишь ту которую хотим получить. Желательно сделать резервную копию файла, так как насколько я понял enconv'у нельзя задать выходной файл и изменяться кодировка будет прямо в исходном файле.
вывод файла с другой кодировкой
- Код: выделить все
cat iptables_1251 | iconv -f cp1251