我在node.js上使用了请求模块,但是编码选项有问题。下面的代码是简单的发布请求,但是我不知道如何设置表单字段数据的编码。我已经将标头设置为,'Content-Type': 'application/x-www-form-urlencoded; charset=euc-kr'
但不起作用。字段数据是韩语,例如“안녕하세요”,我应该使用euc-kr编码将其发布。(该站点使用euc-kr,而不是utf8)
Java应用程序上的同一程序,我这样编码:
PrintWriter wr = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "euc-kr"));
但是我不知道如何在nodejs中。谁能提供一些解决方案...?
代码样例
//Load the request module
var request = require('request');
//Lets configure and request
request({
url: 'http://google.com', //URL to hit
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=euc-kr' },
method: 'POST',
form: {
field1: 'data',
field2: 'data'
}
}, function(error, response, body){
if(error) {
console.log(error);
} else {
console.log(response.statusCode, body);
}
});
最终我得到了解决,并解决了这个问题。
如果使用请求模块将数据作为表单发送,则该模块会强制将表单编码更改为utf-8。因此,即使您将表单编码设置为另一个字符集,该模块也会再次将您的字符集更改为utf8。您可以在1120-1130行的request.js上看到它。
因此,您最好通过“正文”选项而非“表单”选项发送数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句