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.
как бороться?