skeletor Posted October 12, 2010 Posted October 12, 2010 Есть squid 3.1, настроена доменная авторизация через AD (2008 сервер). Кодировка на сервере KOI8-R. Всё нормально работает, только вот в логах отображается вот такое (вместо имени пользователя): %25d3%25d4%25cf%25cc%25c5%25d4%25ce%25c5%25d7%25c1 Пробовал декодировать и гуглом и штирлицом - не получается. Есть ли способ как-то конвертировать это матюк в что-то читабельное? ПС. Не спрашивайте зачем так сделали (было уже до меня), я сам плююсь на это. Вставить ник Quote
marikoda Posted October 12, 2010 Posted October 12, 2010 (edited) тут написано "столетнева" в koi8-r % эскейпится дважды, его вообще выкинуть (%25), остальное - закодированное в hex Edited October 12, 2010 by marikoda Вставить ник Quote
orlik Posted October 12, 2010 Posted October 12, 2010 (edited) Есть squid 3.1, настроена доменная авторизация через AD (2008 сервер). Кодировка на сервере KOI8-R. Всё нормально работает, только вот в логах отображается вот такое (вместо имени пользователя): %25d3%25d4%25cf%25cc%25c5%25d4%25ce%25c5%25d7%25c1 Пробовал декодировать и гуглом и штирлицом - не получается. Есть ли способ как-то конвертировать это матюк в что-то читабельное? ПС. Не спрашивайте зачем так сделали (было уже до меня), я сам плююсь на это. гы гы , там фамилия столетнева. а вообще убираете %25, и получаете таблицу ascii кодов koi8-r . коды можно взять тут http://www.ascii.ca/koi8-r.htm тут написано "столетнева" в koi8-r % эскейпится дважды, его вообще выкинуть (%25), остальное - закодированное в hex хех , не успел, пока меня отвлекли :( Edited October 12, 2010 by orlik Вставить ник Quote
skeletor Posted October 13, 2010 Author Posted October 13, 2010 Всем спасибо. Вот несколько решений (подсказали на форуме) 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 Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.