#!/usr/bin/perl -n $|++; my ($i, $encode, $value); # setup arrays with resulting strings for each code for $i (0..255) { $encoded[$i] = "%".dec2hex($i) } for $i (48..57) { $encoded[$i] = pack("i",$i) } for $i (65..90) { $encoded[$i] = pack("i",$i) } for $i (97..122) { $encoded[$i] = pack("i",$i) } $value=$_; $value =~ tr/+/ /; $value=~ s/./$encoded[unpack("C",$&)]/ge; print "$value"; sub dec2hex { my $val = $_[0]; return sprintf("%02x",$val); }