Decode a percent encoded (url encoded) utf8 string
The encoded input string may only contain the following characters "A"-"Z", "a"-"z", "0"-"9", "-", ".", "_", "~", and "+" or the string "%HH" where H is a hexadecimal digit (case insensitive).
Any other character or broken encoding will return an error.
* Percent encoded bytes ("%HH" where HH is the two-digit hexadecimal representation of the byte), or sequences of those, are converted to the corresponding codepoint(s) in utf8 * The plus character "+" is converted to a space " ".
The encoded input string may only contain the following characters
"A"-"Z", "a"-"z", "0"-"9", "-", ".", "_", "~", and "+"
or the string "%HH" where H is a hexadecimal digit (case insensitive).
Any other character or broken encoding will return an error.
* Percent encoded bytes ("%HH" where HH is the two-digit hexadecimal representation of the byte),
or sequences of those, are converted to the corresponding codepoint(s) in utf8
* The plus character "+" is converted to a space " ".