TLDR; 解决了,见下面的评论:)
我真是越来越螺母这样的:我要发布JSON的管理平台API发送通过CSV文件导入时间条目。 一切正常,直到我试图与德国变音符号(U形O)或特殊字符(SS)发送字符串。
我现在用的请求包用下面的代码:
var options = {
url: self.getHost() + path,
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
method: method
};
options.headers[self.getApiKeyHeader()] = self.getApiKey();
if (method !== HttpMethods.Get) {
params.time_entry.comments = 'äöüß';
options.body = JSON.stringify(params);
options.headers['Content-Length'] = options.body.length;
}
而像这样的发送:
request(options, function (error, response) {
if (response.statusCode === 201) {
console.log('Success');
}
else {
console.log('Error: ' + response.statusCode);
}
});
我总是得到一个错误HTTP500与服务器日志说:“在UTF-8无效字节序列”。 我得到同样的错误,当我尝试通过后邮差的JSON。 正如我的同事与Ruby和PHP脚本没有问题,我想我得到的东西可怕的错误在我的脚本。 也试过用于设置options.body内容如下选择:
options.body = new Buffer(JSON.stringify(params), encoding='utf8');
options.body = new Buffer(JSON.stringify(params, 'ascii').toString('utf8');
随着双方也没有工作。
我使用https://www.npmjs.com/package/request的请求。
我究竟做错了什么?