我正在开发一个 C# 服务器和一个 C++ 客户端。 C++ 客户端向服务器发送一些 unicode 字符串。还行吧。我有一个字符串对象并使用 data() 函数获取字节数组并将其通过套接字发送到 c# 服务器。这一切都可以。服务器正确接收消息。问题在于接收。我从 c# 服务器接收字节,但是我想要一种方法将字节“转换”为相应的 unicode 字符串。
我尝试创建一个宽字符串对象:
wstring str = wstring((wchar_t *) buff);
并通过 c_str() 函数提取字符串,但结果字符串不是服务器发送的字符串!!
其中 buff 是我从套接字接收的字节数组(无符号字符数组)。
任何帮助将不胜感激!!!
最佳答案
以下是我尝试解决此问题的方法:
- 从服务器开始。检查要发送的数据。是您所期望的吗?
- 现在连接。运行 Wireshark 并检查通过以太网发送的实际数据。是您所期望的吗?
- 在客户端,检查缓冲区。是您所期望的吗?
- 在客户端,检查wstring。是您所期望的吗?
从一个已知实体(从服务器发送的数据)开始,并检查它的每一步,看看它在哪里不再像你期望的那样。这会告诉你错误在哪里。一旦您知道这一点,如果您仍然遇到问题,请发布有关错误位置的详细信息。
关于c# - C++ 将 UTF 字节数组转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705059/