JSONの仕様にちょっと悩む
て、RFC に
RFC 4627 - The application/json Media Type for JavaScript Object Notation (JSON)
なってるし、YAML と違って結構いろんな言語でちゃんとサポートされてるので、シリアライズ形式として優れているなと思っています。1
ただなんかちょっと腑に落ちないところがあって、上の RFC に以下のように書かれてるんですよね。
Any character may be escaped. If the character is in the Basic Multilingual Plane (U+0000 through U+FFFF), then it may be represented as a six-character sequence: a reverse solidus, followed by the lowercase letter u, followed by four hexadecimal digits that encode the character's code point. The hexadecimal letters A though F can be upper or lowercase. So, for example, a string containing only a single reverse solidus character may be represented as "\u005C".
2.5. Strings より。
で、
may ってどないやねん
と2。
ただまぁ現実的には生で書くわけじゃないので、ライブラリの挙動が合ってればそれでよく、実際、
- PHP
- Ruby
- JavaScript
で
- PHP -> JavaScript
- Ruby -> PHP
- PHP -> Ruby
の3つではすべて日本語は \u 形式で表現され、それで問題なく解釈できるという動きになってます。
まぁ、そういうことなんでしょうねぇ。