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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     31 Jan 2008  00:59:51
 To : Dmitry E. Oboukhov
 Subject : Re: и снова о юникоде
 -------------------------------------------------------------------------------- 
 
 Dmitry E. Oboukhov -> Artem Chuprina  @ Wed, 30 Jan 2008 21:29:24 +0300:
 
  DEO>>> разобрался
  AB>>>> Можно сделать так:
  AB>>>> # Тут у тебя $content будет с зажженным флагом.
  AB>>>> $content = decode('koi8-r', $content, Encode::FB_QUIET);
  DEO>>> нет тут дело оказалось не в флагах а в том что юникод на вебстраницах
  DEO>>> передается не в utf-8, а в utf-16LE
 
  DEO>>> в итоге регвыражение получилось такое:
 
  DEO>>> use Encode qw(encode decode);
  DEO>>> ...
  DEO>>> $str=~s/\&\#(\d{4})\;/encode('utf-8', decode('utf-16LE', pack('S',
  DEO>>> $1)))/eg;
 
  AC>> Это на каких веб-страницах он так передается!?
  DEO> на всех
  DEO> яндекс например
 
  DEO> а что?
 
 Говорит, charset=windows-1251.
 
 А, понял.  Hе, мужик, не в UTF-16LE.  А вовсе даже просто в уникоде.
 Который _на твоем писюке_ _после этого pack_ на _буквах, используемых
 яндексом_ будет представлен так же, как UTF-16LE.  А на самом деле эти
 числа означают уникодовские коды символов, не привязанные ни к какой
 кодировке.  И надо сказать, цифр там будет совершенно не обязательно
 ровно четыре...
 
 В принципе, за крайне редко встречающемся на практике исключением, прием
 будет работать.  Если не хотеть ровно четыре цифры и паковать не с 'S',
 а с 'v'.  Hо вообще копать в сторону 'U' было бы более правильно.
 
 Во всяком случае, замена decode('utf-16LE', pack('S', $1)) на pack("U",
 $1) у меня успешно сработала.
 
 -- 
 Artem Chuprina
 RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
 
 Он был новичком в Париже, а не в фехтовании.
   Alexander Mozhaev в <1053722458@p15.f76.n5026.z2.fidonet.ftn>
 
 --- ifmail v.2.15dev5.4
  * Origin: Leninsky 45 home network (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/31444dcf0293a.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional