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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Chernomyrdin                  2:5020/400     24 Jan 2003  17:18:42
 To : All
 Subject : про кодировки...
 -------------------------------------------------------------------------------- 
 
 Hi!
 
 Тут возникла проблема - пользователи вводят в форму текст или этот текст
 передается через третьи руки в качестве QUERY_STRING, как правило все приходило 
 в windows-1251, но тут вот стали появлятся уникумы которые умудряются в UTF-8
 завернуть русские буквы.
 Hа все это хозяйчтво был написан некий хак:
 - --
 use CGI::Util qw(unescape); # escape
 use Encode qw(from_to);
 
 sub decode_query {
         my      $self   = shift;
         my      $str    = shift;
 
         if( defined $str and length $str ) {
                 $str = unescape( $str );
                 if( $str =~ /[\xd1\xd0][^\xa3\xb3\xa8\xd8\xc0-\xff]/o ) {       
 # is UTF-8 string
                         local   $_ = $str;
                         if( from_to( $_, 'utf8', 'windows-1251' ) ) {
                                 $str = $_;
                         }
                 }
         }
         return $str;
 }
 - --
 % perl -v
 
 This is perl, v5.8.0 built for i386-linux-thread-multi
 
 Чуствую что можно сделать все совсем не так, а более правильно, но ничего более 
 умного в голову не приходит.
 Буду благодарен за любой совет.
 Да, сильно не ходетлос-бы заставлять всех пользователей переходить на utf-8, так
 как это технически сложно.
 
 -- 
 With Best,
   Andrey <andrey@excom.spb.su>
 --- ifmail v.2.15dev5
  * Origin: X-Com Online (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 про кодировки...   Andrey Chernomyrdin   24 Jan 2003 17:18:42 
Архивное /ru.perl/64265465bb6e.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional