Какую кодировку использовать для json с двоичными данными в кодировке base64?

Какова наиболее эффективная кодировка для JSON (UTF-8/16/32) для использования двоичных данных в кодировке base64?

{ data: "jA0EAwMCxamDRMfOGV5gyZPnyX1BB" }

person Sebastian Barth    schedule 02.12.2014    source источник


Ответы (1)


Base64 — это ASCII, поэтому, если большая часть вашего JSON представляет собой данные, закодированные в Base64, наиболее эффективной кодировкой будет UTF-8. UTF-8 кодирует символы ASCII (кодовые точки 0000–007F) как один байт, тогда как UTF-16 и UTF-32 кодируют их как два и четыре соответственно.

Кроме того, рекомендуется использовать UTF-8, потому что это кодировка по умолчанию для JSON, и не все инструменты поддерживают другие кодировки. Из RFC-7159:

8.1 Кодировка символов

Текст JSON ДОЛЖЕН быть закодирован в UTF-8, UTF-16 или UTF-32. Кодировка по умолчанию — UTF-8, а тексты JSON, закодированные в UTF-8, совместимы в том смысле, что они будут успешно прочитаны максимальным числом реализаций; существует множество реализаций, которые не могут успешно читать тексты в других кодировках (например, UTF-16 и UTF-32).

person Jordan Running    schedule 02.12.2014