|
||
Ответить |
|
#1
|
|
Вес репутации:
0
Регистрация: 27.02.2009
Адрес: Москва
Сообщений: 7,302
Сказал(а) спасибо: 578
Спасибок 2,623
в 1,832 сообщениях |
Перекодировка файлов и т.п. ( cp1251, UTF8 ) -
20.01.2010, 23:31
До сих пор время от времени сталкиваюсь с проблемами отображения текста в следствии зоопарка кодировок. Все проблемы решаются поиском в интернете и перебором различных способов, пока не находишь нужного результата...
Мне это надоело и я решил собрать в oдном мecтe проверенные решения. Начнём с кодировок в названиях файлов. Если нам нужно перекодировать раздел с виндовыми файлами в правильную кодировку, то необходимо выполнить следующее: convmv -r -f cp1251 -t utf-8 --notest Иногда бывают ситуации, когда нужно избавиться от названий файлов, в которых присутствует кириллица. Тут тоже всё просто. Создаём файл со следующим содержанием и выполняем его: PHP код:
Всё просто. А вот ещё задача. Ну просто огромная куча текстовых файлов в какой-то кодировке. Допустим, в той же cp1251. А нам нужно всё это добро конвертировать во всё ту же незаменимую UTF-8. Из всего найденного мне понравился такой подход: find . | while read i; do iconv -f utf-8 -t UTF-8 "$i" >tmp; mv tmp "$i"; done grep -v png | grep -v jpg | grep -v gif | find . | grep -v png | grep -v jpg | grep -v gif | while read i; do ...... find . -name '*.php' | while read i; do iconv -f utf-8 -t UTF-8 "$i" \ >tmp; mv tmp "$i"; done grep -ir utf-8 . Увидели результат. Допустим, у нас искомое было в файлах типа *.php. Хорошо, тогда мы в них и произведём замену: find . -name "*.php" -exec sh -c 'sed "s/utf-8/UTF-8/g" "{}" \ > tmpfile && mv tmpfile "{}"' \; grep -ir utf-8 . Что ещё часто нам режет глаза обилием иероглифов? Конечно же теги в mp3-файлах. До сих пор находятся умельцы, которые их сохраняют в cp1251. Кривые руки таких творцов не выпрямишь, зато ошибки оных легко исправить! Устанавливаем пакет python-mutagen и пприступаем к преобразованию: find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1 find . -iname “*.mp3″ -exec mid3iconv -e CP1251 -d –remove-v1 {} ; Есть ещё некий Tag2Utf cyrillic mp3-tags decoder - это скрипт на Python, который рекурсивно сканирует директорию, в которой запущен, и конвертирует все теги содержащие cp1251 и koi8-r в UTF-8. Для работы требует python-eyed3. Для работы с тегами есть хорошая графическая программа EasyTag. Как с ней работать, разобраться несложно. Источник <!-- Вопросы задаем на форуме, не в ЛС --> |
Ответить |
Опции темы | |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Инфо Список часто используемых файлов и директорий (ubuntu) | Vector | Ubuntu Linux | 0 | 12.07.2009 16:21 |