Note:
For the escape and unescape functions, chaining one with the other
(ex: "unescape(escape(str))") will result in a string that is
semantically equivalent to the original, but it is *not* necessarily
guaranteed to be exactly identical to the original string.
For example:
string str;
str = "\x41\t"; // 0x41 is ASCII and UTF-8 for A
str = unescapeDDQS(str); // == A (That's an actual tab character)
str = escapeDDQS(str); // == "A\t"c
Note that "\x41\t" and "A\t"c are equivalent, but not identical.
Note: For the escape and unescape functions, chaining one with the other (ex: "unescape(escape(str))") will result in a string that is semantically equivalent to the original, but it is *not* necessarily guaranteed to be exactly identical to the original string.
For example: string str; str = "\x41\t"; // 0x41 is ASCII and UTF-8 for A str = unescapeDDQS(str); // == A (That's an actual tab character) str = escapeDDQS(str); // == "A\t"c
Note that "\x41\t" and "A\t"c are equivalent, but not identical.