Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-rus] =?koi8-r?B?68/O09TS1cvUydfOwdEgy9LJ1MnLwQ==?=



On Tue, 15 Dec 1998, Alex Tutubalin wrote:
>  alr> и даже не наибольшее общее подмножество по всем используемым кодировкам,
>  alr>  а только русские буквы.
> Это - неконстpуктивная кpитика. С благодаpностью пpиму констpуктивную. Т.е. 
> сами таблицы.

Вот и конструктивная критика
a) таблицы
б) скрипт который их генерит из описаний charset на ftp.unicode.org.
 (koi8 там нет, но она есть на страничке у Чернова в том же формате
  и у меня на http://www.ice.ru/~vitus/catdoc/ver-0.9.html)

> Сделано не так. Те символы, котоpых нет в таблице оставляются as is.
Это правильно, но если мы логику замены неизвестных символов загоним
в таблицу, возможны проблемы с автоматической генерацией таблицы обратной
кодировки. Что тут делать - не знаю. В тех таблицах которые нагенерил
я, неизвестные символы заменяются на пробел. Как будет себя вести apache
в этих случаях - не знаю. Можно, конечно, задать все таблицы (прямые и
обратные) явно (благо места занимают немного, и нагенерить их легко).

Но, по-моему более правильным подходом было бы встраивание в Apache
логики, которая позволила бы в таблицах помечать некоторые символы
как отсутствующие в другой кодировке (например с помощью 0 в
противоположной колонке) 

Т.е

0  9A
не перекодировать в <- этом направлении
A0  0
Aне перекодировать в ->

> 
> 
> С уважением,Alex Tutubalin
> 
> --- GoldED 2.42.G1114+
> 
> 

--------------------------------------------------
Victor Wagner			vitus@ice.ru
Programmer			Office:7-(095)-964-0380
Institute for Commerce 		Home: 7-(095)-135-46-61
Engineering                     http://www.ice.ru/~vitus
#!/usr/bin/perl
# Скрипт, который делает таблицы перекодировки для Апача.
# Аргументы - исходный charset, выходной charset. Таблица выдается на
# stdout. Возможные опции командной строки -L директория с таблицами
# -u символ для замены не найденных символов (по умолчанию " ");
# Таблицы для всех кодировок кроме koi8 берутся с ftp.unicode.org,
# для koi8 с черновской страницы. Предполагается что они у вас уже
# установленны как часть дистрибутива catdoc-0.90

use Getopt::Std;
use strict;
use vars qw($opt_L $opt_u);

getopts("L:");

$opt_L||="/usr/local/lib/catdoc";
$opt_u||=" ";
my($unknown)=sprintf ("0x%X",ord(" "));
my($source_name,$dest_name)=@ARGV;

$source_name= $1 if  $source_name =~/(.+?)\.txt$/;
$dest_name= $1 if   $dest_name =~/(.+?)\.txt$/;
die "No such file: $opt_L/$source_name.txt" 
  unless (-f "$opt_L/$source_name.txt"); 
die "No such file: $opt_L/$dest_name.txt" 
  unless (-f "$opt_L/$dest_name.txt"); 

open F,"$opt_L/$dest_name.txt";
my(%outtab);
while (<F>) {
  next if /^\s*#/||/^\s*$/;
  if (/(0x[0-9A-F]+)\s+(0x[0-9A-F]+)/i) {
    $outtab{hex($2)}=$1;
  }
}
close F;
print "# Recoding table from $source_name  to $dest_name\n";
print "# produced by mktable script (c) Victor B. Wagner,1998\n";

open F,"$opt_L/$source_name.txt";
while (<F>) {
  next if /^\s*#/||/^\s*$/;
  if (/(0x[0-9A-F]+)\s+(0x[0-9A-F]+)/i) {
     my($unicode)=hex($2);
     my($charcode)=$1;
     next if (hex($charcode)<32||hex($charcode)==127);
     if (defined $outtab{$unicode}) {
        if (uc($outtab{$unicode}) ne uc($charcode)) {
	   print "$charcode $outtab{$unicode}\n";
        }
     }	else {
        print "$charcode $unknown\n";
     }	
	   
  }
}
close F;

=?koi8-r?B?9MHCzMnD2SDQxdLFy8/EydLP18vJ?=






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.