c ++ проблема с запросом curl при получении значений c cyrilli - PullRequest
0 голосов
/ 10 июля 2020

Я использую www.vk.com api для получения данных. Эти данные должны быть в кодировке UTF8 (вы можете увидеть это на экране ниже). Но есть проблема с символами cyrilli c в строке ответа, в которую я записываю данные из моего запроса curl.

На этом экране показан пример отображения данных, когда я вызываю api в браузере:

enter image description here

There is code of requesting data via curl lib in cpp:

std::string json_answer;

    curl_global_init(CURL_GLOBAL_DEFAULT);

    curl = curl_easy_init();

    if (curl) {
        std::string req_string = "https://api.vk.com/method/wall.get?params";
        curl_easy_setopt(curl, CURLOPT_URL, req_string.c_str());
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
        curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CurlWrite_CallbackFunc_StdString);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &json_answer);

        /* Perform the request, res will get the return code */
        res = curl_easy_perform(curl);
        /* Check for errors */
        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                curl_easy_strerror(res));

        /* always cleanup */
        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();

    return json_answer;

The quickwatch of json_answer string is here: enter image description here

Then I parse json and insert data in oracle, in which data encoding is also UTF8: enter image description here

But the result of insertion is on the screen: введите описание изображения здесь

Вы можете мне помочь с этим вопросом? Я не понимаю, почему символы cyrilli c не интерпретируются правильно, когда я вызываю api с помощью curl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...