rain1352 2023-08-23 20:42 采纳率: 50%
浏览 273
已结题

C++使用libcurl库返回数据出现中文乱码

我在使用c++的libcurl库访问网站返回数据出现中文乱码想知道解决办法
程序是

#include <iostream>
#include <curl/curl.h>
#include<windows.h>
#include<string>
;
// 回调函数,用于处理获取到的网页数据
size_t WriteCallback(char* contents, size_t size, size_t nmemb, std::string* response)
{
    size_t totalSize = size * nmemb;
    response->append(contents, totalSize);
    return totalSize;
}

int main()
{
    // 初始化curl
    curl_global_init(CURL_GLOBAL_DEFAULT);

    // 创建curl句柄
    CURL* curl = curl_easy_init();
    if (curl) {
        // 设置要请求的URL
        curl_easy_setopt(curl, CURLOPT_URL, "https://comment.bilibili.com/1057102166.xml");

        // 设置回调函数,用于处理获取到的网页数据
        std::string response;
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        // 发起请求
        
        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            std::cerr << "请求失败,错误代码: " << res << std::endl;
        else
            std::cout << response << std::endl;

        // 清理curl句柄
        curl_easy_cleanup(curl);
    }

    // 清理全局curl资源
    curl_global_cleanup();

    return 0;
}

img

  • 写回答

4条回答

  • 关注

    数据被压缩, 需解压, 具体可见我的博客文章: C++使用libcurl库返回数据为乱码的原因分析与解决方案

            curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, "");
    
    
    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月10日
  • 专家已采纳回答 9月2日
  • 修改了问题 8月23日
  • 修改了问题 8月23日
  • 展开全部

悬赏问题

  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库