S3.Blog

20 Апреля 2024
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

Perl: Меняем кодировку текста

Дата последнего изменения: 23 Сентября 2009
Метки статьи: Документация, Perl
Практически любому разработчику приходится сталкиваться с изменением кодировки текста.
Для 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);
}


Похожие материалы:




вано (гость) • ответить
use Encode 'from_to';
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.

как бороться?
Александрответить
1. переменная $text не undefined?
2. все символы $text точно в koi8?
лена (гость) • ответить
похоже не все символы в кои. myHome

 
 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.