Кодировка JSON в UTF-16 или UTF-32
JSON RFC, раздел 2.5говорит частично:
To escape an extended character that is not in the Basic Multilingual Plane, the character is represented as a twelve-character sequence, encoding the UTF-16 surrogate pair. So, for example, a string containing only the G clef character (U+1D11E) may be represented as "\uD834\uDD1E".
Предположим, у меня есть веская причина для кодирования JSON как UTF-16BE (что разрешено). При этом все еще необходимо избегать символов, которые не находятся в базовой многоязычной плоскости? Например, вместо этого:
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
которая является 24-байтовой последовательностью байтов UTF-16BE для\uD834\uDD1E
Законно ли это делать:
D8 34 DD 1E
то есть напрямую использовать 4-байтовые значения UTF-16BE?
Точно так же, если бы я кодировал ту же строку JSON, что и UTF-32BE, я мог бы просто напрямую использовать значение кодовой точки:
00 01 D1 1E
?