【问题标题】:JSON RFC 4627: whats the meaning of "false = %x66.61.6c.73.65 ; false"JSON RFC 4627:“false = %x66.61.6c.73.65 ; false”的含义是什么
【发布时间】:2013-01-11 13:25:06
【问题描述】:

我正在阅读 RFC 4627 (http://www.ietf.org/rfc/rfc4627.txt)。在第 2.1 段中,它谈到了三个字面名称 true、false、null。

     false = %x66.61.6c.73.65   ; false

     null  = %x6e.75.6c.6c      ; null

     true  = %x74.72.75.65      ; true

我完全迷失在这里。有谁知道 %x66.61.6c.73.65 是什么意思? 谢谢。

【问题讨论】:

  • 我认为是这些单词的十六进制字符。
  • 有人知道这个约定是从哪里来的吗?我从未见过有人将十六进制或“伪十六进制”写成%x77.72.75.65——我觉得\x72\x77\x75...0x747275650x72 0x72 ... 更常见且易于理解。只是好奇,也许 JSON RFC 中使用的形式在过去是司空见惯的还是曾经司空见惯?有人知道吗?

标签: json rfc4627


【解决方案1】:

它们是用于这些单词的字节。简而言之,文本将被编码为 ASCII(或等效),而不是其他编码。

>>> print '\x66\x61\x6c\x73\x65'
false

【讨论】:

  • UTF-8,不是 ASCII; JSON 规范需要 Unicode 表示。
【解决方案2】:

乍一看,这些似乎是字母的 ascii 代码:

  • false = "f"+"a"+"l"+"s"+"e" 例如:char(0x65)+char(0x61)+char(0x6c)+char(0x73)+char(0x65)

【讨论】:

  • UTF-8,不是 ASCII; JSON 规范需要 Unicode 表示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-13
  • 2015-09-01
  • 2018-03-06
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
相关资源
最近更新 更多