1

私はアプリケーションを作成しており、現在 libcurl を使用しています。libcurl コールバック関数は、Ansi charset 用に実装すると正常に動作しますが、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;
}

このスニペットは問題なく動作し、私が読んだ Web サイトのコンテンツを返します。データを文字列ではなくwstringに正しく渡す方法を知っている人はいますか?

編集: 文字バッファーの代わりに正しい wchar_t* バッファー (curl によると void* である最初のパラメーター) でデータを取得しようとしていますが、Ansi データをに追加する方法を知りたくありませんUnicode バッファ。

ありがとう!

4

1 に答える 1

2

基本的には何の関係もなく、ワイド文字列curlに変換するという問題に直面しています。utf-8クラスのようなものを使用するかGlib::ustring、独自に実装するか、このコードを見てください。

于 2009-09-03T10:14:55.690 に答える