(fwd) Re: unicode -> koi8-r

Andrey Gerzhov (kittle@freeland.alex-ua.com)
Wed, 14 Oct 1998 11:14:15 +0300 (EEST)

-- forwarded message --
Path: freeland.alex-ua.com!barmaglot.alex-ua.com!f188.n463.z2!f116.n463.z2!f58.n463!f238.n5020!f400.n5020!ddt.demos.su!fido-news-server
Newsgroups: fido.ru.unix
Distribution: fido
X-Comment-To: Victor Sudakov
From: berd@desert.ihep.su (Eugene B. Berdnikov)
X-FTN-Sender: "Eugene B. Berdnikov" <Eugene.B.Berdnikov@f400.n5020.z2.fidonet.org>
Date: Sun, 11 Oct 98 14:58:28 +0300
Subject: Re: unicode -> koi8-r
Message-ID: <6vq6eq$5hs$1@ddt.demos.su>
References: <908034302@p98.f28.n5005.z2>
Organization: Institute for High Energy Physics, Protvino, Russia
X-FTN-AREA: RU.UNIX
X-FTN-MSGID: ddt.demos.su e548cfbd
X-FTN-REPLY: 2:5005/28.98 361f80fe
X-FTN-Tearline: ifmail v.2.14dev2
X-FTN-Origin: Institute for High Energy Physics, Protvino, Ru (2:5020/400@fidonet)
X-FTN-SEEN-BY: 50/381 520 615 993 461/121 463/5 18 58 68 72 89 93 116 126 130 156
X-FTN-SEEN-BY: 463/159 166 173 177 188 220 244 246 306 316 432 600 690 707 1006
X-FTN-SEEN-BY: 464/100 465/185 467/10 469/124 478/20 490/63 4613/204 4614/1 6
X-FTN-SEEN-BY: 4615/7 21 4616/3 4623/17 4625/3 4631/13 4635/4 5001/15 211 5002/16
X-FTN-SEEN-BY: 5003/15 5006/1 5007/1 5011/13 201 5012/1 5015/28 5020/62 68 118 204
X-FTN-SEEN-BY: 5020/238 300 400 443 487 510 748 1057 1169 1200 1381 1851 4000
X-FTN-SEEN-BY: 5022/5 5023/1 11 5024/11 5025/2 5027/16 5028/51 5029/5 5030/23 115
X-FTN-SEEN-BY: 5032/3 5034/1 5036/1 2 5049/1 6 256 5050/5050 5051/15 5054/9 10
X-FTN-SEEN-BY: 5055/44 5057/1 5058/24 5059/2 5060/88 5061/7 15 48 5064/5 5065/1 10
X-FTN-SEEN-BY: 5066/2 5069/1 2 5074/9 5075/10 5077/3 5078/15 5080/80 1003 5083/21
X-FTN-SEEN-BY: 5083/61 5084/10 5085/250 5094/5094 5100/21
X-FTN-PATH: 5020/400 238 463/58 116
X-FTN-PATH: 463/188
Lines: 34
Xref: freeland.alex-ua.com fido.ru.unix:2172

Victor Sudakov <Victor.Sudakov@p98.f28.n5005.z2.fidonet.org> wrote:
> Есть некоторый файл, про который достоверно известно, что внутри - текст
> по-русски в unicode. Как бы его сконвертить в текст, читаемый под юниксом?

Для начала неплохо бы выяснить, в каком именно юникоде лежит текст -
в UFT-16 или UTF-8. Hаверное, в UTF-8. :-) Тогда табличка

А C0 90 Р C0 A0 а C0 B0 р С1 80
Б C0 91 С C0 A1 б C0 B1 с С1 81
В C0 92 Т C0 A2 в C0 B2 и С1 82
Г C0 93 У C0 A3 г C0 B3 у С1 83
Д C0 94 Ф C0 A4 д C0 B4 ф С1 84
Е C0 95 Х C0 A5 е C0 B5 х С1 85
Ж C0 96 Ц C0 A6 ж C0 B6 ц С1 86
З C0 97 Ч C0 A7 з C0 B7 ч С1 87
И C0 98 Ш C0 A8 и C0 B8 ш С1 88
Й C0 99 Щ C0 A9 й C0 B9 щ С1 89
К C0 9A Ъ C0 AA к C0 BA ъ С1 8A
Л C0 9B Ы C0 AB л C0 BB ы С1 8B
М C0 9C Ь C0 AC м C0 BC ь С1 8C
H C0 9D Э C0 AD н C0 BD э С1 8D
О C0 9E Ю C0 AE о C0 BE ю С1 8E
П C0 9F Я C0 AF п C0 BF я С1 8F
Ё C0 81 ё С1 91

перегоняется в хаш, и за 10 минут рисуется такой скрипт:

#/usr/local/bin/perl
%uft2koi = ( "\300\220" => "А", [все остальное]...);
while (<>) { s/[\300\301]./$uft2koi{$&}/geo; print; }

Отлаженный результат посылается мне, лентяю, в качестве бонуса. :)

-- 
 Eugene Berdnikov
-- end of forwarded message --

-- 
С тем, что не помешает никогда,
                                               Kittle