JSON指定“任何UNICODE字符”?

时间:2010-05-03 16:18:25

标签: json unicode encoding

也许这只是我对unicode的不熟悉,所以如果我弄错了,请纠正我。

查看http://json.org/,规范说字符串可以包含“任何UNICODE字符”,但这让我感到困惑。

  • JSON是一种通信格式 正确?在它的核心, 一切都必须转化为 字节。
  • 相比之下,UNICODE是一个 逻辑格式,必须编码 能传播吗,对吗?

那么他们的意思是什么?

3 个答案:

答案 0 :(得分:16)

来自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

答案 1 :(得分:3)

JSON是一种序列化格式,可以包含UNICODE字符。此unicode字符串的字节表示通常通过线路发送,通常通过HTTP协议使用HTTP标头来指定客户端的编码,即UTF-8。

答案 2 :(得分:1)

你说的一切都必须转换为字节,通常通常是通过UTF(Unicode转换格式)。 JSON RFC在section 3中解释了如何判断正在使用的UTF。