2017-11-16 3 views
1

Ich verwende Axios, um eine GET-Anforderung an die Microsoft Text Translator-API zu senden. Der Aufruf ist erfolgreich und gibt die Übersetzungen von Griechisch nach Englisch korrekt zurück. Wenn ich jedoch versuche, eine Übersetzung von Englisch nach Griechisch zu machen, ist die Antwort falsch. Zum Beispiel ist dies die Übersetzung für das Wort "προγραμματισμός" kommt als ÀÁ¿³Á±¼¼±Ä¹Ã¼Ì statt programming heraus. Hat jemand dieses Problem mit Griechisch oder einer anderen Sprache angetroffen?Bing Translator API gibt falsche griechische Wörter zurück

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); 
    }); 
}) 
+1

sieht aus wie eine Codierung Problem. Gehen Sie davon aus, dass der Text ascii ist? – Fai

+0

@Fai Nicht genau sicher. Aber ich habe gerade versucht, etwas mit Anführungszeichen zurückzugeben, und die tatsächliche Rendite, die ich bekomme, ist "& quot". –

Antwort

0

Wie Fai sagte dies eine Codierung Problem. Das Problem wird durch die Verwendung encodeURI auf die URL gelöst, bevor sie zu senden, wie folgt aus:

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'}, 
}) 
Verwandte Themen