Я пытаюсь использовать Google Translation API с libcurl в моей программе на C / C ++, но получаю плохой результат всякий раз, когда что-то переводю с расширенным ASCII.Например, перевод «nuß» на английский (немецкое слово «nut»).Обратите внимание, что ß является расширенным символом ASCII (0xDF), вам не нужен Unicode для его записи.
"nuß" → английский в Chrome
Когда я открываю этот URL в Chrome, онуспешно переводится как «гайка»: https://translate.googleapis.com/translate_a/single?client=gtx&ie=UTF-8&oe=UTF-8&sl=de&tl=en&dt=t&q=nuß
[[["nut","nuß",null,null,2]],null,"de"
«nuß» → английский в моей программе C / C ++
Когда я использую тот же URL из моей программы C / C ++, оношибочно переводится в «nu?»
[[["nu?","nu?",null,null,0]],null,"de"
Вот моя программа:
#include <iostream>
#define CURL_STATICLIB
#include "curl/curl.h"
int main() {
CURL *curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://translate.googleapis.com/translate_a/single?client=gtx&ie=UTF-8&oe=UTF-8&sl=de&tl=en&dt=t&q=nuß");
curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
То же самое происходит, если я изменяю конец URL на nu%DF
вместо nuß
.