[shell] squid и конвертация русских символов

Если у вас встречаются русские символы в именах пользователей, то в логах вы будете видеть вот такие «крякозяблы» %25d3%25d4%25cf%25cc%25c5%25d4%25ce%25c5%25d7%25c1. Что бы их раскодировать можно применить один из следующих методов:

1) echo "%25d3%25d4%25cf%25cc%25c5%25d4%25ce%25c5%25d7%25c1" | awk '{gsub(/%25/, " 0x", $0); FS=" "; for(i=1; i<=NF; i++) printf "%c", $i; print ""}' -
2) echo '%25d3%25d4%25cf%25cc%25c5%25d4%25ce%25c5%25d7%25c1' | perl -pe ' s/%25([a-f0-9]{2,2})/chr(hex($1))/eg;' | recode -f koi8-r..utf-8
3) $ s=""; for i in d3 d4 cf cc c5 d4 ce c5 d7 c1; do o=`printf "%o" 0x$i`; c=`printf "\0$o"`; s=${s}${c}; done; echo "$s"
4) printf '%b\n' "$(echo '%25d3%25d4%25cf%25cc%25c5%25d4%25ce%25c5%25d7%25c1' | sed 's/%25/\\x/g')" | iconv -f koi8-r
5) echo $text = urldecode(urldecode('%25d3%25d4%25cf%25cc%25c5%25d4%25ce%25c5%25d7%25c1'));

Далее можно составить скрипт, например, на perl’e и в реальном режиме пайпить.

[shell] squid и конвертация русских символов: 2 комментария

Добавить комментарий для skeletor Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *