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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Dmitry E. Oboukhov                   2:5020/830.100 26 Jan 2008  22:41:16
 To : All
 Subject : и снова о юникоде
 -------------------------------------------------------------------------------- 
 
 символы в кодировке koi8r и такого вида конструкции:
 а страница
 доступна
 только для
 
 скрипт работает в локали utf-8.
 
 если контенту сделать такое преобразование:
 
 use Encode qw(encode decode);
 ...
 $charset='koi8-r';
 ...
 $content=encode('utf-8', decode($charset, $content, Encode::FB_QUIET));
 
 и вывести его на экран, то на экране видим русские буквы в местах где
 был текст в koi8, и стра в местах где был этот
 закодированный юникод.
 
 теперь я следом делаю:
 
 $content=~s/\&\#(\d{4})\;/pack 'U', $1/eg;
 
 и получаю такой результат:
 все закодированные в коды строки стали нормально видны по русски,
 а все русские строки до этого показывавшиеся корректно превратились во
 вражескую кабалистику (хотя их регулярное выражение затронуть не должно
 было)
 
 вот тестовый скрипт демонстрирующий эффект:
 
 nbw:[~/bite]$ cat test.pl
 #!/usr/bin/perl
 
 use warnings;
 use strict;
 
 my $str=<<endstring;
 а страница
 доступна
 только для
 
 это тестовая строка в юникоде
 endstring
 
 print "=" x 50, "\n";
 print $str, "\n";
 
 print "=" x 50, "\n";
 $str=~s/\&\#(\d{4})\;/pack 'U', $1/eg;
 print $str, "\n";
 
 а вот результаты его работы:
 
 nbw:[~/bite]$ perl test.pl
 ==================================================
 а страница
 доступна
 только для
 
 это тестовая строка в юникоде
 
 ==================================================
 Wide character in print at test.pl line 19.
 а страница
 доступна
 только для
 надеюсь через двойной гейт пройдет в удобоваримой форме то что приведено
 выше :)
 
 что я делаю неправильно?
 ... Выборы, выборы! Все кандидаты ...ры! (ц) Ленинград
 --- Mutt/1.5.17 (2007-12-11)
  * Origin: Debian GNU Linux (2:5020/830.100)
 
 

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

 Тема:    Автор:    Дата:  
 и снова о юникоде   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/446166eeffa3.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional