| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 пойдет? |