Butschek.de

Warnung: Diese Seite ist eine statische Kopie eines früher betriebenen Blogs. Es findet keine Aktualisierung mehr statt. Kommentare und die Suche funktionieren nicht.

Linux, Server & Co

urldecode auf der Shell

leave a comment

Wer hin und wieder schon mal in einem Apache-Log die Referer durchsucht hat, kennt das Problem mit der Zeichenkodierung: Sonderzeichen werden als zweistellige hexadezimale Zeichen mit vorangestelltem Prozentzeichen dargestellt. Aus ‚Wörter mit Äh, Üh und Öh‘ wird so schnell ein ‚W%F6rter+mit+%C4h%2C+%DCh+und+%D6h‘, was für den Admin wirklich schwer zu lesen sein dürfte.

Eine ganz einfache Möglichkeit der Umwandlung bietet Perl durch die Möglichkeit, die Suchergebnisse eines regulären Ausdrucks durch eine Callback-Funktion zu schicken:

echo 'W%F6rter+mit+%C4h%2C+%DCh+und+%D6h'
  | perl -pe 's/%([A-Fa-f0-9]{2})/pack("C", hex($1))/seg'

Nur die Pluszeichen (welche für Space eingesetzt werden) bleiben bestehen, das erschwert die Lesbarkeit jedoch kaum. Falls es doch stört, einfach das Ergebnis nochmal durch ‚tr‚ schicken…

Written by Michael Butschek

September 21st, 2008 at 1:39 pm

Posted in IT,LST

Tagged with , , ,