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

标签 javascript node.js 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"]

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

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

最佳答案

我明白了!

浏览器结果正确。 所以,我设置了听众'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"]

谢谢!

关于javascript - node.js 请求编码(谷歌翻译),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36377532/

相关文章:

javascript - 为什么我的带有 Promise 的递归函数只等待一次?

javascript - 导出问题

javascript - 如何避免谷歌翻译翻译出不需要的markdown文档 block

authentication - 为什么 Google Cloud Translate 上的持久 503 服务不可用?

javascript - 如何在 React 中渲染数组中的随机对象?

javascript - 联系表(成功提交并重置)

javascript - 我一直在尝试创建一个 react 应用程序,但我不断收到此错误 : "npm ERR! cb() never called!"

javascript - 单页应用程序中模板检索的困惑以及与典型文件检索的区别

google-translate - 我从 google-translate api 收到某些翻译

javascript - 如何检查 Node.js 中是否定义了变量?