Как должен оставленный unicode быть обработанным json синтаксическими анализаторами и кодерами?

Самая хорошая точка (IMO) автоматизированных модульных тестов - то, что, когда Вы изменяетесь (улучшаются, осуществить рефакторинг) существующий код, легко протестировать это, Вы не повредили его. Это было бы утомительно для тестирования всего вручную снова и снова.

8
задан Sergio Tulentsev 18 June 2012 в 22:17
поделиться

2 ответа

Что вы подразумеваете под «ограниченным кодом»? Какую спецификацию, использующую этот язык, вы смотрите? (Я не могу найти таких.)

Если вы говорите о суррогатах, тогда да: JavaScript почти ничего не знает (*) о суррогатах и ​​рассматривает все кодовые точки UTF-16 в любой последовательности как действительные. JSON, ограниченный тем, что поддерживает JavaScript, делает то же самое.

*: единственная часть JS, о которой я могу думать, которая делает что-то особенное с суррогатами, - это функция encodeURIComponent, поскольку она использует кодировку UTF-8, в которой попытка закодировать недопустимую суррогатную последовательность не получится. Если вы попытаетесь:

encodeURIComponent('\ud834\udd1e'.substring(0, 1))

, вы получите исключение.

(Угу! SO, похоже, не разрешает размещать символы из-за пределов Базового Многоязычного Уровня. Тск.)

3
ответ дан 5 December 2019 в 20:17
поделиться

Когда вы декодируете, кажется, что это было бы подходящим использованием для символа замены юникода , U + FFFD .

Из базы данных символов Unicode :

  • используется для замены входящего символа, значение которого неизвестно или не представляется в Unicode
  • , сравните использование U + 001A в качестве управляющего символа для обозначения замены function
5
ответ дан 5 December 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: