node.js 请求编码(google 翻译)
node.js request encoding (google translate)
我想使用 google 翻译 api,所以我做了这个 node.js 模块。
module.exports = function(sourceText,sourceLang,targetLang,callback) {
var qst = qs.stringify({
client : 'gtx',
sl : sourceLang,
tl : targetLang,
dt : 't',
q : sourceText
});
var options = {
uri: 'http://translate.googleapis.com/translate_a/single?'+qst,
};
request.get(options).on('response',function(response){
response.on('data',function(data){
console.log(data.toString('utf-8'));
});
});..
我主要想用日文翻译韩文,所以我测试了,但我得不到我想要的结果。我检查了 URI 并在浏览器上执行,它成功了!
例如: sorceLang=ja, targetLang=ko, sourceText=ののの,
我得到了 URI
http://translate.googleapis.com/translate_a/single?client=gtx&sl=ja&tl=ko&dt=t&q=%E3%81%AE%E3%81%AE%E3%81%AE
浏览器结果:[[["의의","ののの",,,0]],,"ja"]
但是,node.js return 结果: [[["縺ョ縺ョ縺ョ","縺ョ縺ョ縺ョ",,,0]],,"ja"]
我认为似乎是请求中的问题,因为结果未翻译。
请给我一些解决方案。谢谢。
我明白了!
浏览器结果正确。
所以,我设置了听者'User-Agent'。
这是我的来源
module.exports = function(sourceText,sourceLang,targetLang,callback){
var qst = qs.stringify({
client : 'gtx',
sl : sourceLang,
tl : targetLang,
dt : 't',
q : sourceText
});
var options = {
uri: 'http://translate.googleapis.com/translate_a/single?'+qst,
headers : {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'
}
};
request.get(options).on('response',function(response){
response.on('data',function(data){
console.log(data);
});
});}
控制台结果
[[["안녕하세요","こんにちわ",,,0]],,"ja"]
谢谢!
我想使用 google 翻译 api,所以我做了这个 node.js 模块。
module.exports = function(sourceText,sourceLang,targetLang,callback) {
var qst = qs.stringify({
client : 'gtx',
sl : sourceLang,
tl : targetLang,
dt : 't',
q : sourceText
});
var options = {
uri: 'http://translate.googleapis.com/translate_a/single?'+qst,
};
request.get(options).on('response',function(response){
response.on('data',function(data){
console.log(data.toString('utf-8'));
});
});..
我主要想用日文翻译韩文,所以我测试了,但我得不到我想要的结果。我检查了 URI 并在浏览器上执行,它成功了!
例如: sorceLang=ja, targetLang=ko, sourceText=ののの, 我得到了 URI
http://translate.googleapis.com/translate_a/single?client=gtx&sl=ja&tl=ko&dt=t&q=%E3%81%AE%E3%81%AE%E3%81%AE
浏览器结果:[[["의의","ののの",,,0]],,"ja"]
但是,node.js return 结果: [[["縺ョ縺ョ縺ョ","縺ョ縺ョ縺ョ",,,0]],,"ja"]
我认为似乎是请求中的问题,因为结果未翻译。
请给我一些解决方案。谢谢。
我明白了!
浏览器结果正确。 所以,我设置了听者'User-Agent'。 这是我的来源
module.exports = function(sourceText,sourceLang,targetLang,callback){
var qst = qs.stringify({
client : 'gtx',
sl : sourceLang,
tl : targetLang,
dt : 't',
q : sourceText
});
var options = {
uri: 'http://translate.googleapis.com/translate_a/single?'+qst,
headers : {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'
}
};
request.get(options).on('response',function(response){
response.on('data',function(data){
console.log(data);
});
});}
控制台结果
[[["안녕하세요","こんにちわ",,,0]],,"ja"]
谢谢!