Couchdb 不喜欢 JSON 文档中的重音字符



以下 JSON 对象导致 CouchDB 插入 (POST)失败并显示"无效 JSON"消息这里的重音 É UTF8

 var o = JSON.stringify({"Éditeur": 123});  var httpOpts = {      主机名: "本地主机",      端口:5984,      路径: '/theDb',      方法:"开机自检",      标头:{        "内容类型": "应用程序/json",        "内容长度":o.长度}     }    var req = http.request(httpOpts, function(res) {      console.log('STATUS: ' + res.statusCode);      console.log('HEADERS: ' + JSON.stringify(res.headers));      res.setEncoding('utf8');      res.on('data', function (chunk) {        console.log('BODY: ' + chunk);      });    });    req.write(o)    req.end()

事实证明这不是 couchDB 的错,内容长度需要给定字节计数,不是字符数,这是JavaScript的string.length给你的,

使用以下函数计算字节数可以解决问题函数字节计数 { return encodeURI(s).split(/%..|./).长度 - 1;}

最新更新