Я пишу веб-сервис, который использует json для представления своих ресурсов, и я немного застрял в размышлении о наилучшем способе кодирования json. Чтение json rfc (http://www.ietf.org/rfc/rfc4627.txt) ясно, что предпочтительным кодированием является utf-8. Но rfc также описывает механизм экранирования строки для указания символов. Я предполагаю, что это, как правило, будет использоваться для выхода из символов, отличных от ascii, тем самым делая полученный utf-8 действительным ascii.
Итак, скажем, у меня есть строка json, которая содержит символы Unicode (кодовые точки), которые не являются ascii. Должен ли мой веб-сервис просто кодировать utf-8 и возвращать его, или он должен избегать всех этих символов без ascii и возвращать чистый ascii?
Я бы хотел, чтобы браузеры могли выполнять результаты с помощью jsonp или eval. Означает ли это решение? Мои знания о поддержке javascript в браузере для utf-8 отсутствуют.
EDIT: Я хотел уточнить, что моя основная забота о том, как закодировать результаты, действительно касается обработки браузером результатов. То, что я прочитал, указывает на то, что браузеры могут быть чувствительны к кодировке при использовании JSONP в частности. Я не нашел по-настоящему хорошей информации по этому вопросу, поэтому мне нужно будет начать какое-то тестирование, чтобы посмотреть, что произойдет. В идеале я бы хотел только избежать тех нескольких символов, которые требуются, и просто utf-8 закодировать результаты.