It end up with '+' to space, in '/usr/share/perl5/site_perl/URL/Encode/PP.pm' it has codeuse URL::Encode 'url_decode_utf8'; use utf8::all; $string = '%E6%88%91%E7%88%B1c++'; print url_decode_utf8("$string");
It intends to protect '+', but failed to convert it back. comment the two lines on the contrary works fine.... $EncodeMap{"\x20"} = '+'; ... $s =~ y/+/\x20/;
Why all this?
In reply to why URL::Encode deliberately mistreat '+' by vincentaxhe
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |