use URL::Encode 'url_decode_utf8'; use utf8::all; $string = '%E6%88%91%E7%88%B1c++'; print url_decode_utf8("$string"); #### ... $EncodeMap{"\x20"} = '+'; ... $s =~ y/+/\x20/;