четверг, 15 декабря 2011 г.

Конвертация содержимого файлов из windows-1251 в utf8

Основной утилитой перекодировки в нашем случае будет iconv. При помощи iconv запросто можно перекодировать один файл:
iconv -f WINDOWS-1251 -t UTF-8 src_filename > dst_filename
iconv --list - список кодировок.
Например: WINDOWS-1251, UTF-8, UTF-16, UNICODE, KOI8-R, ISO-8859-5, CP866

Скрипт для нескольких файлов (в примере все файлы с расширением txt

#!/bin/bash

FILES=./*.txt
   for i in $FILES
    do
    echo \"Converting $i from WINDOWS-1251 to UTF-8 encoding…\"
   mv $i $i.icv
      iconv -f WINDOWS-1251 -t UTF-8 $i.icv > $i
   rm -f $i.icv
   done

Для выполнения скрипта не забудьте назначить права и можно положить в системную папку, чтобы можно было выполнить в любой папке. Будьте внимательны, перезаписывая файлы!


После конвертирования файлов проекта, если проект пользуется базой MySQL, нужно сконвертировать и содержимое таблиц.

mysql> ALTER TABLE mytable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Источник1 Источник2