Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexey Bavykin                       2:5020/400     30 Jan 2008  19:20:04
 To : Dmitry E. Oboukhov
 Subject : Re: и снова о юникоде
 -------------------------------------------------------------------------------- 
 
 Dmitry E. Oboukhov -> All @ Sat 26/01/08 21:41 +0300 :
 
  DEO> есть задача парсить странички html на которых в куче перемешаны
  DEO> символы в кодировке koi8r и такого вида конструкции:
  DEO> а страница
  DEO> доступна
  DEO> только для
 
  DEO> скрипт работает в локали utf-8.
 
  DEO> если контенту сделать такое преобразование:
 
  DEO> use Encode qw(encode decode);
  DEO> ...
  DEO> $charset='koi8-r';
  DEO> ...
  DEO> $content=encode('utf-8', decode($charset, $content, Encode::FB_QUIET));
 
 из perldoc Encode, вчитайся:
 
 CAVEAT: When you run "$octets = encode("utf8", $string)", then $octets
 may not be equal to $string. Though they both contain the same data, the
 utf8 flag for $octets is always off.  When you encode anything, utf8
 flag of the result is always off, even when it contains completely valid
 utf8 string. See "The UTF-8 flag" below.
 
 Hе просто так тут разница в именах переменных ($octets и $string)
 
  DEO> теперь я следом делаю:
 
  DEO> $content=~s/\&\#(\d{4})\;/pack 'U', $1/eg;
 
 Из perldoc -f pack :
 U   A Unicode character number.  Encodes to UTF-8 internally
 
 Т.е. тут у $content'а взводится "utf-8 flag"
 
 Можно сделать так:
 # Тут у тебя $content будет с зажженным флагом.
 $content = decode('koi8-r', $content, Encode::FB_QUIET);
 
 Потом уже:
 $content =~ s/\&\#(\d{4})\;/pack 'U', $1/eg;
 
 А перед выводом (если надо) - encode в куда нужно.
 
 -- 
 Alexey
 --- ifmail v.2.15dev5.4
  * Origin: RTComm.RU (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 и снова о юникоде   Dmitry E. Oboukhov   26 Jan 2008 22:41:16 
 и снова о юникоде   Dmitry E. Oboukhov   26 Jan 2008 22:47:36 
 Re: и снова о юникоде   Alexey Bavykin   30 Jan 2008 19:20:04 
 и снова о юникоде   Dmitry E. Oboukhov   30 Jan 2008 20:07:39 
 Re: и снова о юникоде   Artem Chuprina   30 Jan 2008 20:47:05 
 и снова о юникоде   Dmitry E. Oboukhov   30 Jan 2008 22:29:24 
 Re: и снова о юникоде   Artem Chuprina   31 Jan 2008 00:59:51 
Архивное /ru.perl/61544d68b6513.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional