node.js请求编码(谷歌翻译) [英] node.js request encoding (google translate)

查看:76
本文介绍了node.js请求编码(谷歌翻译)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用Google翻译api,所以我制作了这个node.js模块.

I want use google translate api, so I made this node.js module.

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并在浏览器上执行,就可以了!

I want mainly use translate japanese to korean, so I tested but I can't get result I wanted. I checked URI and execute on browser, it worked!

例如:sorceLang = ja,targetLang = ko,sourceText =ののの,我有URI

For example: sorceLang=ja, targetLang=ko, sourceText=ののの, I got 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返回结果: [[[縺ョ縺ョ縺ョ",縺ョ縺ョ縺ョ" ,,, 0]] ,,"ja]

我认为请求中似乎有问题,因为结果未翻译.

I think seems to be a problem in request, because result is not translated.

请给我一些解决方案.谢谢.

Please, give me some solution. Thank you.

推荐答案

我明白了!

浏览器结果正确.因此,我将听众设置为用户代理".这是我的来源

Browser result is right. So, I set hearder 'User-Agent'. Here is my source

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"]

谢谢!

这篇关于node.js请求编码(谷歌翻译)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆