如何在win1251 charset中发送以下查询?
var getData = querystring.stringify({
type: "тест", note: "тест1"
}),
options = {
host: config.host,
path: config.path + '?' + getData,
method: 'GET'
};
http.request(options, function (res) {...}).end();
答案 0 :(得分:5)
我认为此代码段可以帮助您
request({
uri: website_url,
method: 'GET',
encoding: 'binary'
}, function (error, response, body) {
body = new Buffer(body, 'binary');
conv = new iconv.Iconv('windows-1251', 'utf8');
body = conv.convert(body).toString();
}
});
更新1
好的,我觉得找到有用的东西:)。
您可以使用上面这样的实用程序
// Suppose gbkEncodeURIComponent function already exists,
// it can encode string with `gbk` encoding
querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
{ encodeURIComponent: win2unicode })
// returns
'w=%D6%D0%CE%C4&foo=bar'
答案 1 :(得分:2)
服务器是否真的在URL的查询部分接受win1251?
What character set should I assume the encoded characters in a URL to be in?
但是这里有一些与你的问题相符的答案:
Converting from Windows-1251 to UTF-8 in Node.js
减少使用这些库中的任何一个,你也应该在npm上找到它们。
https://github.com/bnoordhuis/node-iconv
或
https://github.com/ashtuchkin/iconv-lite
迈克尔