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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Yury Kopyl                           2:5020/400     24 Oct 2002  16:07:53
 To : Yuriy Talakan'
 Subject : Re: win->koi8
 -------------------------------------------------------------------------------- 
 
 Hекто Yuriy Talakan'  по поводу "win->koi8" нашкрябал(а) следующее:
 
  YT>     Вопрос простой и глупый. :)
 
  YT>    Чем можно строку (скаляр) в cp1251 преобразовать в koi8-r?
 
 package coder;
 
 #
 # (c) Alex Bukhtenko, 1998
 # abacus@chat.ru
 #
 # ver 2.0
 
 require Exporter;
 @ISA = qw(Exporter);
 @EXPORT = qw(encode C_WIN C_KOI C_DOS C_MAC C_ISO C_OTHER);
 
 use strict;
 sub C_WIN { return 'windows-1251'; }
 sub C_KOI { return 'koi8-r'; }
 sub C_DOS { return 'cp866'; }
 sub C_MAC { return 'mac'; }
 sub C_ISO { return 'iso-8859-5'; }
 sub C_OTHER { return 'other'; }
 
 sub encode {
 
   #
   # Parameters:
   #    $in_str - input string
   #    $from   - encoder hash key of input string encode
   #    $to     - encoder hash key of output string encode
   # Hash keys: windows-1251, koi8-r, cp866, mac, iso-8859-5
   #
   # Return: overcoded string
   #
 
   my($in_str, $from, $to) = @_;
 
   $from =~ tr/A-Z/a-z/;
   $to =~ tr/A-Z/a-z/;
 
   my $out_str = $in_str;
 
   return $out_str if ($from eq $to);
   return $out_str if (($from eq C_OTHER) || ($to eq C_OTHER));
 
   my %code_tables = (
       C_WIN,
 'АБВГДЕЁЖЗИЙКЛМHОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя',
       C_KOI,
 'бвчзде_цъйклмнопртуфхжигюыэящшьасБВЧЗДЕ_ЦЪЙКЛМHОПРТУФХЖИГЮЫЭЯЩШЬАС',
       C_DOS,      '__'_":рЕШ_%_<_____''"".--_T_>____
 ??_?_сі.Ёc?<ї-R?абвгдежзийклмноп',
       C_MAC,
 '__'_":ЭЕШ_%_<_____''"".--_T_>____абвгдеЮжзийклмнопрстуфхцчшщъыьэюЯ',
       C_ISO,
 'ш+___ч?.ъё??>___?АБВГДЕЖЗИЙКЛМHОПРСТУФХсЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп'
       );
 
   return $out_str if ((!defined($code_tables{$from})) ||
 (!defined($code_tables{$from})));
 
   my($ev) = '$out_str =~ tr/' . "$code_tables{$from}/$code_tables{$to}/";
   eval($ev);
   return $out_str;
   }
 
 1;
  Yury Kopyl aka hrg | http://id.totem.ru | "Сегодня с нами ты не пьешь, а
 завтра Родине изменишь!"
 
 --- ifmail v.2.15dev5
  * Origin: IAC Samara-Internet, Ltd. (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 win->koi8   Yuriy Talakan\'   24 Oct 2002 16:33:16 
 Re: win->koi8   Victor Wagner   24 Oct 2002 11:34:00 
 Re: win->koi8   Yury Kopyl   24 Oct 2002 16:07:53 
 Re: win->koi8   Demin Alexander   24 Oct 2002 20:35:03 
 Re: win->koi8   Andrey Sapozhnikov   24 Oct 2002 21:34:17 
 Re: win->koi8   Andrey Sapozhnikov   24 Oct 2002 22:23:34 
 Re: win->koi8   Victor Wagner   25 Oct 2002 00:02:07 
 Re: win->koi8   Andrey Sapozhnikov   25 Oct 2002 01:49:40 
 Re: win->koi8   Victor Wagner   25 Oct 2002 09:03:47 
 Re: win->koi8   Artem Chuprina   25 Oct 2002 13:57:23 
 Re: win->koi8   Victor Wagner   25 Oct 2002 14:28:18 
Архивное /ru.perl/1027742947dce.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional