[教程] 搜狗翻译 API 如何进行多行翻译
用 \n + encodeURIComponent 就行
搜狗翻译 API 指的是"搜狗深智引擎"
这篇文章讲什么
如何使用搜狗翻译 API 进行多行翻译
为什么写这篇文章?
难道官方文档没说吗?
是,还真没说。
官方文档只写了:
在同一页面内搜"换行","多行",或者在谷歌上进行搜索。都找不到。
搜狗官方文档截止至2019年12月27号,只字未提怎么多行翻译。
废话不多直接说结论和代码,无聊的过程放到最后
结论
使用 \n 即可,证明:
代码
以下是我能用的完整代码, sogou.js
var md5 = require('md5');
const axios = require('axios');
function api(query, source_langauge, target_language) {
var url = "http://fanyi.sogou.com:80/reventondc/api/sogouTranslate"
let pid = '自己填'
let key = '自己填'
var salt = Math.floor(Date.now() / 1000);
var q = query
var sign = md5(pid + q + salt + key)
var from = source_langauge
var to = target_language
var payload = "from=" + from + "&to=" + to + "&pid=" + pid + "&q=" + encodeURIComponent(q) + "&sign=" + sign + "&salt=" + salt
return axios({
method: 'post',
url,
timeout: 5000,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
"Cache-Control": "no-cache", // 避免 Chrome 把请求 Stalled 20 秒
},
data: payload
}).then(response => {
return response.data
})
}
exports.api = api
注意,一定要用 encodeURIComponent,不能用 encodeURI
因为像是 & 这样的符号,encodeURI 不会编码,而 encodeURIComponent 会编码
如果用 encodeURI 会在个别情况下出现问题:
上面这样 & 的符号会造成签名错误问题
全文完
感谢阅读