Ответ 1
Насколько я могу судить, да, вы можете напрямую писать значения UTF-16. Поддержка: в приведенном вами параде RFC объясняется, как избежать произвольного Юникода, если вы решили его избежать. Однако ранее в этом же разделе RFC сообщает
Все символы Юникода могут размещаться внутри цитаты метки, за исключением символов, которые должны быть экранированы: цитата метки, обратного солидуса и управляющих символов (U + 0000 через U + 001F).
Любой символ может быть экранированным. Если символ находится в Базовый многоязычный самолет (U + 0000 через U + FFFF), то это может быть представленный в виде шестисимвольной последовательности...
(Акцент добавлен.)
Для меня это говорит о том, что только "
, \
и управляющие символы должны быть экранированы и что любые другие символы Unicode могут помещаться как-есть непосредственно в текст JSON (в любой форме UTF, которую вы используете). Он также говорит мне, что даже если вы кодируете UTF-8, вам не нужно использовать форму \uXXXX
для любого символа Юникода, отличного от "
, \
и управляющих символов.
(Как в стороне, это меня заставляет задуматься, действительно ли форма \uXXXX
полезна для чего-либо, кроме управляющих символов. Как сказал другой плакат, вероятно, это связано с тем, что фактически поддерживает парсер JSON.)