s/([^\w-])/'%'.unpack("H*", $1)/eg; # %5e%25%40%7cCaD5H