JSON String のマルチバイトの仕様
ES5 の仕様書
http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf
JSON.stringify(”ほげほげ") は "ほげほげ" となるのが正しい模様。
一方で、RFC
http://www.ietf.org/rfc/rfc4627.txt
によると、"ほげほげ" は "\\u307b\\u3052\\u307b\\u3052" になってもよいよ、とある。
で、CouchDB は後者のエスケープバージョンのJSONしか受け付けないので、node.js 0.2.30.3 以降, あるいはES5をちゃんと実装しているモダンな(笑 ブラウザだと連携できなくなる.... なんだってー
[追記]
id:t_43z さんから 0.3 以降じゃね ? という指摘をいただいて、改めてソース確認。
macbook:tmp yssk22$ diff node-v0.2.4/deps/v8/src/json.js node-v0.2.2/deps/v8/src/json.js macbook:tmp yssk22$ diff node-v0.3.0/deps/v8/src/json.js node-v0.2.2/deps/v8/src/json.js 71,75d70 < '\b': '\\b', // ASCII 8, Backspace < '\t': '\\t', // ASCII 9, Tab < '\n': '\\n', // ASCII 10, Newline < '\f': '\\f', // ASCII 12, Formfeed < '\r': '\\r', // ASCII 13, Carriage Return 77c72,79 < '\\': '\\\\' --- > '\\': '\\\\', > '/': '\\/', > '\b': '\\b', > '\f': '\\f', > '\n': '\\n', > '\r': '\\r', > '\t': '\\t', > '\x0B': '\\u000b' 96c98 < var quotable = /[\\\"\x00-\x1f]/g; --- > var quotable = /[\\\"\x00-\x1f\x80-\uffff]/g;
0.3 以降、ですね。失礼しました。