1
私はアプリケーションを作成していますが、現在libcurlを使用しています。 Ansiの文字セットのためにlibcurlコールバック関数を実装するとうまく動作しますが、Unicode文字を扱うときには動作しません。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;
}
このスニペットはうまく機能し、私が読んだウェブサイトの内容を返します。誰も私はどのように文字列の代わりにwstringにデータを正しく渡すことができるか知っていますか?
EDIT:文字バッファーの正しいwchar_t *バッファー(最初のパラメーターはcurlによるvoid *です)でデータを取得しようとしていますが、追加方法を知りたくありませんAnsiデータをUnicodeバッファに格納します。
ありがとうございます!
私の問題は、それが最初の場所でデータを受け取っていることを変換するものではありません。最初のパラメータはvoid *であり、何にでもキャストすることができます。しかし、これはchar *に対してのみ有効です。 – Charles
いいえ、*変換中です。あなたは 'UTF-8'を使ってエンコードされたバイトストリームを受け取ります(実際にはサーバに依存し、この情報は' HTTP'ヘッダで見つけることができます)。あなたはデータを変更するためにポインタをキャストすることはできません、あなたはそれを変換する必要があります。 –
スムーズに作業しました、ありがとう! – Charles