Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Опять траблы с кодировкой.


Автор: Гость_s_a_s_h_a 6.8.2004, 16:43
Описываю проблему. На сайт приходят люди отовсюду и в базу данных записываются нечитабельные фразы, как распознать в какой они кодировке, или хотя бы как-то отсеивать их. Если что-то непонятно, задавайте вопросы я попытаюсь подробнее объяснить. Жду ответов.

Автор: s_a_s_h_a 9.8.2004, 17:41
Нашел способ частично справиться с этой проблемой. Для этого потребуются два модуля
use Text::Iconv;
use Lingua::DetectCharset;

#массив @phrases содержит фразы в разных кодировках

my $k=0;
my @right_phrases=();

for(my $i=0;$i<scalar(@phrases);$i++)
{ $Src = Lingua::DetectCharset::Detect ($phrases[$i]);
if($Src eq 'UTF8')
{ my $converter = Text::Iconv->new("UTF8", "WINDOWS-1251");
$right_phrases[$k] = $converter->convert($phrases[$i]);
$k++;
}
if($Src eq 'KOI8')
{ my $converter = Text::Iconv->new("KOI8", "WINDOWS-1251");
$right_phrases[$k] = $converter->convert($phrases[$i]);
$k++;
}
if($Src eq 'WIN' || $Src eq 'ENG')
{ $right_phrases[$k]=$phrases[$i];
$k++;
}
}

Но тут мы видим, что набор кодировок-то беден. В модуле Lingua::DetectCharset они следующие: WIN, UTF8, KOI8, ENG, при этом случаются еще и различные казусы.

Автор: HISH 13.8.2004, 19:31
может быть Cyrillic::CPdetect и Cyrillic::CPconvert пойдет?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)