>[оверквотинг удален]
>>>
>>>ну дык в чем проблема? в локали? )
>>
>>urldecode я насколько понимаю - это в php. скриптик написан на csh.
>>
>>Проблема пока не решена. Разбираюсь дальше с apache. Не хотелось бы городить
>>еще один скрипт по перекодировки. Как вариант можно конечно использовать и
>>php, но есть свои ограничения на это...
>
>какие ограничения? )) На сервере не установлен php, и не предполагается.
Проблему решил использую скрипты на csh.
Костыли, но работает отлично. Если кто решил проще, прощу в студию.
создал 2 файла:
Первый файл вспомогательный con2text_run.sh
Можно подавать строку на стандартный ввод или в качестве аргумента, работает так и так.
Из данного файла запускается непосредственно скрипт con2text.sh, который и перекодирует посимвольно.
#!/bin/csh
if ( $1 == "" ) then
set string1 = `tee`;
else
set string1 = `echo $1`;
endif
set string2 = "";
set num = `echo $string1 | wc -c`
#echo $num
set i = 1
set string1 = `echo $string1 | sed 's/\&\#8470\;/#/g'`
while ( $i <= `expr $num` )
#echo `echo $string1 | head -c $i | tail -c 13`
if ( `echo $string1 | head -c $i | tail -c 13` == "№" ) then
set string2 = $string2"#"
set i = `expr $i + 12`
else
if !( `echo $string1 | head -c $i | tail -c 1` == "%" ) then
set string2 = $string2""`echo $string1 | head -c $i | tail -c 1`
set i = `expr $i + 1`
else
set head1 = `expr $i + 2`
set string3 = `echo $string1 | head -c $head1 | tail -c 3 | /usr/local/www/apache22/cgi-bin/con2text.sh`
if ( $string3 == "+" ) then
set string3 = "FFFFOOOOBBBBAAAARRRR"
echo "+"
endif
set string2 = $string2""$string3
set i = `expr $i + 3`
endif
endif
end
echo `echo $string2 | sed 's/+/ /g;s/FFFFOOOOBBBBAAAARRRR/+/g'`
exit
Второй файл con2text.sh в котором происходит посимвольная перекодировка:
#!/bin/csh
if ( $1 == "" ) then
set char_c = `tee | head -c 3`;
else
set char_c = `echo $1 | head -c 3`;
endif
set char_o = $char_c;
if ( $char_c == "Й") then
set char_o = "Й"
endif
if ( $char_c == "Ц") then
set char_o = "Ц"
endif
if ( $char_c == "У") then
set char_o = "У"
endif
if ( $char_c == "К") then
set char_o = "К"
endif
if ( $char_c == "Е") then
set char_o = "Е"
endif
if ( $char_c == "Н") then
set char_o = "Н"
endif
if ( $char_c == "Г") then
set char_o = "Г"
endif
if ( $char_c == "Ш") then
set char_o = "Ш"
endif
if ( $char_c == "Щ") then
set char_o = "Щ"
endif
if ( $char_c == "З") then
set char_o = "З"
endif
if ( $char_c == "Х") then
set char_o = "Х"
endif
if ( $char_c == "Ъ") then
set char_o = "Ъ"
endif
if ( $char_c == "Ф") then
set char_o = "Ф"
endif
if ( $char_c == "Ы") then
set char_o = "Ы"
endif
if ( $char_c == "В") then
set char_o = "В"
endif
if ( $char_c == "А") then
set char_o = "А"
.......
if ( $char_c == "(") then
set char_o = "("
endif
if ( $char_c == ")") then
set char_o = ")"
endif
if ( $char_c == "+") then
set char_o = "+"
endif
if ( $char_c == "@") then
set char_o = "@"
endif
if ( $char_c == "#") then
set char_o = "#"
endif
if ( $char_c == "$") then
set char_o = "\$"
endif
if ( $char_c == "%") then
set char_o = "%"
endif
if ( $char_c == "^") then
set char_o = "^"
endif
if ( $char_c == "&") then
set char_o = "&"
endif
if ( $char_c == "~") then
set char_o = "~"
endif
if ( $char_c == "Ё") then
set char_o = "Ё"
endif
if ( $char_c == "ё") then
set char_o = "ё"
endif
if ( $char_c == "=") then
set char_o = "="
endif
if ( $char_c == ",") then
set char_o = ","
endif
if ( $char_c == "'") then
set char_o = "'"
endif
if ( $char_c == "/") then
set char_o = "/"
endif
if ( $char_c == "\") then
set char_o = "\"
endif
if ( $char_c == "|") then
set char_o = "|"
endif
echo $char_o;