JSON 指定“可以在任何一对标记之间插入空格”。它没有具体说明什么是空白。我应该将其读作“老式 ASCII 空白”还是“Unicode 空白的整个范围”?
换句话说,在解析 JSON 时,U+2000、U+2001、U+FEFF 等令牌之间的空白字符是否有效?
JSON 指定“可以在任何一对标记之间插入空格”。它没有具体说明什么是空白。我应该将其读作“老式 ASCII 空白”还是“Unicode 空白的整个范围”?
换句话说,在解析 JSON 时,U+2000、U+2001、U+FEFF 等令牌之间的空白字符是否有效?
RFC4627 中为 JSON定义了无关紧要的空格:
在六个
结构字符中的任何一个之前或之后都允许有无关紧要的空格。
ws = *(
%x20 / ; Space
%x09 / ; Horizontal tab
%x0A / ; Line feed or New line
%x0D ; Carriage return
)
顺便说一句,默认编码是 UTF-8:
JSON 文本应以 Unicode 编码。默认编码为 UTF-8。
话虽如此,我不认为他们打算在原始实现中接受所有形式的Unicode 空间。