Javascript Bing Translator API返回错误的希腊语单词
我正在使用axios对Microsoft文本转换器API执行GET请求。调用成功,并正确返回从希腊语到英语的翻译。然而,当我尝试将英语翻译成希腊语时,答案是错误的。例如,这是单词“προγραματσμμμμμμμό”的翻译,而不是Javascript Bing Translator API返回错误的希腊语单词,javascript,node.js,microsoft-translator,Javascript,Node.js,Microsoft Translator,我正在使用axios对Microsoft文本转换器API执行GET请求。调用成功,并正确返回从希腊语到英语的翻译。然而,当我尝试将英语翻译成希腊语时,答案是错误的。例如,这是单词“προγραματσμμμμμμμό”的翻译,而不是编程。有人在使用希腊语或其他语言时遇到过这个问题吗 index.js bp.hear(/μετάφρασε (.+)/i, (event, next) => { const microsoft_translator_text = event.captured[0
编程
。有人在使用希腊语或其他语言时遇到过这个问题吗
index.js
bp.hear(/μετάφρασε (.+)/i, (event, next) => {
const microsoft_translator_text = event.captured[0];
const requst =
axios.post("https://api.cognitive.microsoft.com/sts/v1.0/issueToken", null, {
headers: {'Ocp-Apim-Subscription-Key': bing_translator_api}
})
.then(function (response) {
var microsoft_translator_auth = response.data;
console.log(microsoft_translator_text);
axios.get(`http://api.microsofttranslator.com/V2/Ajax.svc/Translate?appId=Bearer%20${microsoft_translator_auth}&from=el&to=en&text=${microsoft_translator_text}`)
.then(function (translation) {
var translation_morph = translation.data.replace(/['"]+/g, '')
event.reply('#translation', {
translation: translation_morph,
})
})
.catch(function (error) {
console.log(error);
});
})
.catch(function (error) {
console.log(error);
});
})
正如Fai所说,这是一个编码问题。在发送url之前,在url上使用
encodeURI
可以解决此问题,如下所示:
var encoded_url = encodeURI("http://api.microsofttranslator.com/V2/Ajax.svc/Translate?appId=Bearer " + `${microsoft_translator_auth}&from=el&to=en&text=${microsoft_translator_text}`)
axios.get(encoded_url, null, {
headers: {'Content-type': 'application/json'},
})
正如Fai所说,这是一个编码问题。在发送url之前,在url上使用
encodeURI
可以解决此问题,如下所示:
var encoded_url = encodeURI("http://api.microsofttranslator.com/V2/Ajax.svc/Translate?appId=Bearer " + `${microsoft_translator_auth}&from=el&to=en&text=${microsoft_translator_text}`)
axios.get(encoded_url, null, {
headers: {'Content-type': 'application/json'},
})
看起来像是编码问题。你认为文本是ascii码吗?@Fai不太确定。但我只是尝试返回带引号的内容,而实际返回的是
“
”。看起来像是编码问题。你认为文本是ascii码吗?@Fai不太确定。但我只是尝试返回带引号的内容,而实际返回的是“
”。