Paul J. Lucas wrote:
> Assume I have a valid reason to encode JSON as UTF-16BE (which is
> allowed). When doing so, is it still necessary to escape characters
> that are not in the Basic Multilingual Plane? E.g., instead of this:
> 00 5C 00 75 00 44 00 38 00 33 00 34 00 5C 00 75 00 44 00 44 00 31 00 45
> \ u D 8 3 4 \ u D D 1 E
> which is the 24-byte UTF-16BE byte sequence for \uD834\uDD1E, is it
> legal to do this:
> D8 34 DD 1E
> i.e., use the 4-byte UTF-16BE values directly?
> Similarly, if I were to encode the same JSON string as UTF-32BE, could I simply use the code-point value directly:
> 00 01 D1 1E
Yes you can. Regardless of encoding, you only have to escape ", \ and
the control characters U+0000 to U+001F, and any other character can
be represented directly.