繁体   English   中英

node.js请求编码(谷歌翻译)

[英]node.js request encoding (google translate)

我想使用google translate 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返回结果[[["縺ョ縺ョ縺ョ","縺ョ縺ョ縺ョ",,,0]],,"ja"]

我认为似乎是请求中的问题,因为结果没有被翻译。

拜托,给我一些解决方案。 谢谢。

我知道了!

浏览器结果是对的。 所以,我设置了听众'用户代理'。 这是我的来源

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

谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM