Перекодирование текста
Перекодирование текста
Перекодирование текста Этот алгоритм позволяет перекодировать текст. Реализованы кодировки Windows-1251, KOI8-R, ISO-8859-5 и DOS. Кодировка - это таблица, в которой указано, например, что символ под номером 160 - это русская буква "а", а под номером 150 - "Ц" и т. д. Кодировки различаются номерами русских букв (как располагать английские буквы договорились). Разные компьютеры в Интернете используют разные кодировки. И поэтому, когда русский текст идет по Интернету, его многократно перекодируют. Этот алгоритм обеспечивает высокую скорость перекодирования больших объемов данных. Листинг 1. Перекодирование procedure TForm1.Button1Click(Sender: TObject); var code1, code2: TCode; s: string; c: char; i: integer; chars: array [char] of char; str: array [TCode] of string; begin case ComboBox1.ItemIndex of 1: code1 := koi; 2: code1 := iso; 3: code1 := dos; else code1 := win; end; case ComboBox2.ItemIndex of 1: code2 := koi; 2: code2 := iso; 3: code2 := dos; else code2 := win; end; s := Memo1.Text; Str[win]:='АаБбВвГгДдЕеЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя'; Str[koi]:='юЮаАбБцЦдДеЕфФгГхХиИйЙкКлЛмМнНоОпПяЯрРсСтТуУжЖвВьЬыЫзЗшШэЭщЩчЧъЪ'; Str[iso] := 'РрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯяа№бёв?г_дєе_ж_зїи_й_к_л_м?н§оўп_'; Str[dos] := '_ ?Ў'ў__"¤:_+¦+§_Ё%c_Є<"_¬?_R?Ї?а??б??в"г"де-ж-з?иTй_к>л_м?н_о_п'; for c := #0 to #255 do Chars[c] := c; for i := 1 to Length(Str[win]) do Chars[Str[code2][i ]] := Str[code1][ i]; for i := 1 to Length(s) do s[ i] := Chars[s[i ]]; Memo2.Text := s; end;