Perl: Меняем кодировку текста
Практически любому разработчику приходится сталкиваться с изменением кодировки текста.
Для perl существуют уже готовые модули: Encode, Text::Iconv и Convert::Cyrillic
Вот примеры использования перекодировки текста из koi8-r в utf-8:
Если исходная кодировка неизвестна, то на помощь придет Lingua::DetectCharset
Для perl существуют уже готовые модули: Encode, Text::Iconv и Convert::Cyrillic
Вот примеры использования перекодировки текста из koi8-r в utf-8:
use Encode 'from_to'; from_to($text, 'koi8-r', 'utf-8');
use Convert::Cyrillic; $text = Convert::Cyrillic::cstocs('KOI8', 'UTF8', $text);
use Text::Iconv; my $iconv_koi2u = Text::Iconv->new("koi8-r", "utf-8"); $text = $iconv_koi2u->convert($text);
Если исходная кодировка неизвестна, то на помощь придет Lingua::DetectCharset
use Convert::Cyrillic; use Lingua::DetectCharset; my $charset = Lingua::DetectCharset::Detect($text); if ($charset ne 'ENG') { $text = Convert::Cyrillic::cstocs($charset, 'UTF8', $text); }
from_to($text, 'koi8-r', 'utf-8');
Wide character in subroutine entry at /usr/local/lib/perl5/5.8.9/mach/Encode.pm line 190.
как бороться?