Если в урл многобайтовые символы, то возвращается мусор.
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
size_t write_data(char *data, size_t size, size_t nmemb, char *buffer){
strcpy(buffer, data);
return size * nmemb;
}
int main(){
CURL *curl = curl_easy_init();
char buffer[512];
char url[] = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=привет";
if(curl){
CURLcode res;
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, buffer);
res = curl_easy_perform(curl);
}
printf("%s\n", buffer);
}
Результат: А наоборот нормально:
[[["Ð¿Ñ € ивÐμÑ,","привет",null,null,0]],null,"is",null,null,null,1,null,[["is"],null,[1],["is"]]]
[[["Здравствуйте","hello",null,null,1]],null,"en",null,null,null,1,null,[["en"],null,[1],["en"]]]
Пробовал урл через curl_easy_escape пропускать, но что-то разницы нет.