2010-05-03 17 views
7

Forse questa è solo la mia non familiarità con l'unicode, quindi per favore correggimi se sbaglio.JSON specifica "qualsiasi carattere UNICODE"?

Guardando a http://json.org/, la specifica dice che una stringa può includere "qualsiasi carattere UNICODE", ma questo mi confonde.

  • JSON è un formato di comunicazione corretto? Al centro di esso, , tutto deve essere tradotto fino a byte.
  • Al contrario, UNICODE è un formato logico e deve essere codificato in essere in grado di trasmetterlo, giusto?

Quindi cosa intendevano?

risposta

16

Dal 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

Sono sempre confuso quando la gente dice "codificato in Unicode", poiché (a quanto ho capito) Unicode è un set di caratteri, non una codifica. Non dovrebbe essere "DEVI usare il set di caratteri Unicode, con una codifica predefinita di UTF-8"? Sono sorpreso di vedere una cosa del genere in un RFC. – ALEXintlsos

3

JSON è un formato di serializzazione che può includere caratteri UNICODE. La rappresentazione in byte di questa stringa unicode viene solitamente inviata sul filo, normalmente tramite il protocollo HTTP che utilizza le intestazioni HTTP per specificare la codifica sul client che è UTF-8.

+0

Gli stati RFC più recenti: Nota: per questa registrazione non è definito alcun parametro "charset". L'aggiunta di uno non ha alcun effetto sui destinatari conformi. –

1

Sei corretto che tutto deve tradursi in byte, e di solito che di solito si verifica attraverso un UTF (Unicode Transformation Format). La RFC di JSON spiega in section 3 come dire cosa UTF viene utilizzato.

Problemi correlati