|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1027742947dce.html, оценка из 5, голосов 10
|