less of an "issue" more like a suggestion
since your code already queries the true-false array of _penc[ ],
why not directly store the post-encoded view inside _penc[ ]
e.g.
_penc["}"] = "%7D"
_penc["h"] = "h"
_penc[" "] = "+"
this way it saves a lot of time by not having to query _penc[ ] THEN query _ord[ ] THEN run its output via sprintf()
less of an "issue" more like a suggestion
since your code already queries the true-false array of
_penc[ ],why not directly store the post-encoded view inside
_penc[ ]e.g.
this way it saves a lot of time by not having to query
_penc[ ]THEN query_ord[ ]THEN run its output viasprintf()