Posts Tagged ‘раскладка символов’

Trics and traps

Я так решил назвать эту часть,потому что это название больше всего соответствует.

Я вам в этой части расскажу о всяких тонких и неочевидных местах и о том как с этим боротся.

Продолжая тему отладки, я столкнулся с такой неочевидной проблеммой, помимо того,что надо перевести раскладку Windows (или DOS) в koi8-r На некоторых серверах (в том числе на нашем UIC’овском) скрипт все равно отказывался работать. Признаюсь ,хоть и разобрался в чем дело я быстро, причина весьма неочевидна: Дело в том,что текстовый файл Windows содержит перед символом перехода на новую строку еще символ возврата каретки. А вот из-за этого скрипт и отказывался выполнятся, что содержал этот символ!

Методом решения (этот процесс как и все я максимально автоматизирую) стал коротенький скрипт delcr .Просто «натравливайте» его на ваши скрипты:delcr *.cgi

#!/usr/bin/perl
#delcr
unless(@ARGV){die «Usage: delcr file ….\n»;}
foreach $file(@ARGV){
if(! -r $file || ! -w $file){print «$file: access denied\n»;}
else{
open F,»+<$file"|| die "Cannot open $file $!\n";
binmode F || die "Cannot binmode $file $!\n";
@D=;
seek F,0,0;
foreach(@D){
s/\r//g;
print F;
}
truncate F,tell(F);
close F;
}
}

Саму же взаимную перекодировку Doskoi-8Win поможет выполнить вот такая прога. Написал я ее очень давно, даже раньше чем занялся CGI программированием и с тех давних пор она меня все время выручала, став моим по-настоящему незаменимым и верным другом. Итак, знакомьтесь: txtconv -Утилита перевода раскладок символов.
(далее…)