我之前问过类似的问题。但我仍然在 c++ 中的编码方面遇到麻烦。我尽量描述问题。
我有一个 c++ 客户端,通过 TCP 与 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 字符串?
谢谢帮助
托比