JSON RFC, раздел 2.5, в частности:
Чтобы избежать расширенного символа, который отсутствует в Basic Multilingual Плоскость, символ представлен в виде двенадцатисимвольной последовательности, кодируя суррогатную пару UTF-16. Так, например, строка содержащий только символ ключа G (U + 1D11E), может быть представлен как "\ 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
i.e, используйте 4-байтовые значения UTF-16BE напрямую?
Аналогично, если бы я должен был кодировать ту же строку JSON, что и UTF-32BE, могу ли я просто напрямую использовать значение кодовой точки:
00 01 D1 1E
?