【问题标题】:LibCurl Unicode dataLibCurl Unicode 数据
【发布时间】:2009-09-03 18:38:32
【问题描述】:

我正在编写一个应用程序,我目前正在使用 libcurl。当我为 Ansi 字符集实现 libcurl 回调函数时,它工作正常,但在使用 Unicode 字符时我无法让它工作。

int CURLConnectorAnsi::BufferWriter(char* data, size_t size, size_t nmemb, std::string* buffer)
{
    int ReadBytes = 0;
    if (buffer != NULL)
    {
        buffer->append(data, size * nmemb);
        ReadBytes = size * nmemb;
    }

    return ReadBytes;
}

这个 sn-p 工作正常,并返回我浏览过的网站的内容。有谁知道如何将数据正确地传递到 wstring 而不是字符串?

编辑:我试图设法在字符缓冲区的正确 wchar_t* 缓冲区中获取数据(根据 curl 的第一个参数是 void*),我不想知道如何添加 Ansi数据存入 Unicode 缓冲区。

谢谢!

【问题讨论】:

    标签: c++ c libcurl


    【解决方案1】:

    基本上,它与curl 无关,您面临将utf-8 转换为宽字符串的问题。您可以使用类似Glib::ustring 的类或自行实现它,或者查看this code

    【讨论】:

    • 我的问题不是转换,而是首先接收数据;第一个参数是一个 void* 并且可以转换成任何东西;但这仅适用于 char*。
    • 不,它正在转换。您会收到字节流,这些字节流很可能是使用UTF-8 编码的(它实际上取决于服务器,您可以在HTTP 标头中找到此信息)。不能只投指针来改变数据,还需要转换。
    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    相关资源
    最近更新 更多