{"id":14,"date":"2008-09-21T13:39:19","date_gmt":"2008-09-21T11:39:19","guid":{"rendered":"http:\/\/www.butschek.de\/?p=10"},"modified":"2012-03-11T12:12:56","modified_gmt":"2012-03-11T11:12:56","slug":"urldecode-shell","status":"publish","type":"post","link":"https:\/\/www.butschek.de\/2008\/09\/21\/urldecode-shell\/","title":{"rendered":"urldecode auf der Shell"},"content":{"rendered":"
<\/a>Wer hin und wieder schon mal in einem Apache-Log die Referer<\/a> durchsucht hat, kennt das Problem mit der Zeichenkodierung<\/a>: Sonderzeichen werden als zweistellige hexadezimale Zeichen mit vorangestelltem Prozentzeichen dargestellt. Aus ‚W\u00f6rter mit \u00c4h, \u00dch und \u00d6h‘ wird so schnell ein ‚W%F6rter+mit+%C4h%2C+%DCh+und+%D6h‘, was f\u00fcr den Admin wirklich schwer zu lesen sein d\u00fcrfte.<\/p>\n Eine ganz einfache M\u00f6glichkeit der Umwandlung bietet Perl durch die M\u00f6glichkeit, die Suchergebnisse eines regul\u00e4ren Ausdrucks durch eine Callback-Funktion<\/a> zu schicken:<\/p>\necho 'W%F6rter+mit+%C4h%2C+%DCh+und+%D6h'\r\n | perl -pe 's\/%([A-Fa-f0-9]{2})\/pack(\"C\", hex($1))\/seg'<\/pre>\n