LINUX.ORG.RU

Узнать кодировку файла


0

0

Вот скрипт которым я пользуюсь для перекодировки файлов

------------------------------------------------

#!/bin/bash

indir=./wo
outdir=./wo2
inenc=cp1251
outenc=utf8

for file in `ls $indir` ; do

	iconv $indir/$file -f $inenc -t $outenc > $outdir/$file

done

------------------------------------------------

А как можно узнать кодировку файла и динамически менять параметр ${inenc}, а то если файлы в разных кодировках, то получается весьма смешно.

хм в веб-бровзерах судя по меню автоопределялка имеется.. но standalone не видел.

может вот что сделать: надыбать список русских слов (например здесь
http://www.cotse.com/wordlists/russ_koi) и искать в файле эти слова во всяких кодировках:

while [[ $word = get_next_word]]; do 
{
  # assume word is in utf8
  if  grep $word < $file 
    return "UTF8 eto";
  fi
  word={convert $word to cp1251}
  if  grep $word < $file 
    return "cp1251 eto";
  fi
   и тд.
}


Правда может тормозно это быть... желательно словарик не из всех слов 
по алфавиту а из часто встречающихся...

gods-little-toy ★★★
()

enca определяет кодировку, enconv автоматически конвертирует. Иногда даже определяет для дважды перекодированного. Ещё кодировку умеет определять file, но enca реже ошибается. http://trific.ath.cx/software/enca/ , есть в некоторых дистрибутивах, включая Gentoo.

acheron ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.