# To encode $string =~ s/([^a-zA-Z0-9_\-.])/uc sprintf("%%%02x",ord($1))/eg; # To decode $string =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;