我必须向包含俄语字符的正文发送一个帖子请求到似乎只接受win1251编码的服务。我正在使用请求模块在node.js中执行此操作。
这就是我发送请求的方式
var rawbody = "i1=&i2=&i3=" + query + "&i4=&i5=&i8=";
var options = {
url: this.initiate_endpoint,
jar: this.session,
cert: this.fs.readFileSync('resources/r.crt.pem', 'utf-8'),
key: this.fs.readFileSync('resources/r.key.pem', 'utf-8'),
timeout: 20000,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: rawbody
};
let cookie = this.session;
request.post(options,
function (error, response, body) {
if( error ) {
callback(cookie, error);
}
else if( response.statusCode !== 200 ) {
callback(cookie, 'Responded with status code: ' + response.statusCode);
}
else {
callback(cookie, false);
}
});
每当query
变量包含俄语字母时,请求都将失败。
例如:
var query = 'Путин';
所以我的问题是如何将编码从查询变量实际转换为win1251,以及如何设置实际原始帖子的编码,因为我认为这两件事可能是导致问题的原因。