2010-05-03 11 views
7

Vielleicht ist das nur meine Unvertrautheit mit Unicode, also korrigiere mich bitte, wenn ich mich irre.JSON spezifiziert "irgendein UNICODE-Zeichen"?

Betrachtet man http://json.org/, sagt die Spezifikation, dass eine Zeichenfolge "jedes UNICODE-Zeichen" enthalten kann, aber das verwirrt mich.

  • JSON ist ein Kommunikationsformat korrekt? Im Kern muss alles auf Bytes übersetzen.
  • Im Gegensatz dazu ist UNICODE ein logisches Format und muss zu codiert sein, um es zu übertragen, nicht wahr?

Also was meinten sie dort?

Antwort

16

Vom RFC:

 
3. Encoding 

    JSON text SHALL be encoded in Unicode. The default encoding is 
    UTF-8. 

    Since the first two characters of a JSON text will always be ASCII 
    characters [RFC0020], it is possible to determine whether an octet 
    stream is UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE) by looking 
    at the pattern of nulls in the first four octets. 

      00 00 00 xx UTF-32BE 
      00 xx 00 xx UTF-16BE 
      xx 00 00 00 UTF-32LE 
      xx 00 xx 00 UTF-16LE 
      xx xx xx xx UTF-8 
+2

Ich bin immer verwirrt, wenn Leute sagen "in Unicode codiert", da (wie ich es verstehe) Unicode ist ein Zeichensatz, keine Codierung. Sollte das nicht "den Unicode-Zeichensatz verwenden, mit einer Standardcodierung von UTF-8"? Ich bin überrascht, so etwas in einem RFC zu sehen. – ALEXintlsos

3

JSON ist ein Serialisierungsformat, das UNICODE-Zeichen enthalten kann. Die Byte-Darstellung dieser Unicode-Zeichenfolge wird normalerweise über die Leitung gesendet, normalerweise über das HTTP-Protokoll, das HTTP-Header verwendet, um die Codierung für den Client anzugeben, bei dem es sich um UTF-8 handelt.

+0

Die neuesten RFC-Status: Hinweis: Für diese Registrierung ist kein Parameter "charset" definiert. Das Hinzufügen von einem hat keine Auswirkung auf kompatible Empfänger. –

1

Sie richtig sind, dass alles in Bytes übersetzen muss, und in der Regel, dass erfolgt in der Regel durch eine UTF (Unicode Transformation Format). Der JSON RFC erklärt in section 3, wie UTF zu verwenden ist.

Verwandte Themen