3

以前にも同様の質問をしました。しかし、私はまだ c++ のエンコーディングに問題があります。私はできるだけ問題を説明しようとします。

TCP 経由で c# サービスと通信する c++ クライアントがあります。ここで、サービスからのメッセージをメッセージ ボックス (Win32 API) に表示する必要があります。C# サービスによって送信されるバイトは、UTF-8 でエンコードされます。

重要なのは、c++ クライアントは Windows システムでのみ実行されるということです。

これは、バイトを受信して​​テキストを表示するコードです。

    char buffer[1024];
    int receivedBytes = recv(socketHandle, buffer, sizeof(buffer) - 1, 0);
    char str[receivedBytes];
    for (int index = 0; index < receivedBytes; index++)
    {
        str[index] = buffer[index];
    }

    MessageBox(mainWindow, (LPCTSTR)str, (LPCTSTR) "Fehler", MB_OK|MB_ICONERROR);

テキストに üäö のようなチャットタクターが含まれている場合、それらはメッセージ ボックスに正しく表示されません。メッセージを C++ で UTF-8 文字列として受信するにはどうすればよいですか? char[] を UTF-8 文字列に変換する可能性はありますか?

助けてくれてthx

トビ

4

1 に答える 1