Определение кодировки текста в файле, содержащем JSON

Мое приложение хранит данные конфигурации (включая строки для пользовательского интерфейса) в текстовом файле, содержащем JSON. Например, config.json может содержать следующее:

{
   "CustomerName" : "Omni Consumer Products",
   "SubmitButtonText": "Click here to submit",
   // etc etc etc..
}

Этот файл отправляется нашему поставщику переводов, который делает его дубликаты на нескольких поддерживаемых языках. Они могут создавать собственное приложение или редактировать его в текстовом редакторе. Я не знаю.

Поскольку мы собираемся использовать всевозможные символы, отличные от ASCII, в некоторых из наших языков, я хотел бы убедиться, что всем понятно, какую кодировку символов мы используем.

Итак, если бы это был файл XML, я бы поместил следующее объявление вверху файла:

<?xml version="1.0" encoding="UTF-8"?>

Любой разумный текстовый редактор или анализатор XML увидит это и узнает, что файл закодирован в UTF-8.

Есть ли какой-либо аналогичный стандарт, который я могу поместить в начало файла JSON и быть уверенным, что потребители будут хорошо с ним работать?


person Mike Ruhlin    schedule 25.04.2014    source источник


Ответы (1)


Кодировка JSON по умолчанию — UTF-8:

http://www.ietf.org/rfc/rfc4627.txt

Из раздела 3:

Текст JSON ДОЛЖЕН быть закодирован в Unicode. Кодировка по умолчанию — UTF-8.

Поскольку первые два символа текста JSON всегда будут символами ASCII [RFC0020], можно определить, является ли поток октетов UTF-8, UTF-16 (BE или LE) или UTF-32 (BE или LE). посмотрев на шаблон нулей в первых четырех октетах.

Это определение является однозначным, поэтому в самом формате нет специального места, где кодировка описывается.

person b4hand    schedule 25.04.2014