Andreas Flückiger: unwebify «=» webify

Beitrag lesen

Hallo Beat

$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
Wie kann ich das eigentlich umkehren? Also in einem String die Zeichen wieder http comform machen? (webifien hihi)

Dafür gibts doch das Forumsarchiv:
<../../sfarchiv/1999_2/t03778.htm#a18233>

Leider funktioniert diese Lösung nicht 100%-ig. Ein Newline wird z.B. nach %a umgewandelt, da die führende Null entfernt wurde. Ein CGI-Script könnte diese Daten nicht richtig verarbeiten.

Diese Zeilen sollten funktionieren:
$value =~ s/([^ a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
$value =~ tr/ /+/;

Gruss
Andreas