C ++将UTF字节数组转换为字符串

时间:2012-01-02 20:34:05

标签: c# c++ sockets unicode

我正在开发一个C#服务器和一个C ++客户端。 C ++客户端将一些unicode字符串发送到服务器。还行吧。我有一个字符串对象,并使用data()函数获取字节数组并通过套接字将其发送到c#服务器。一切都好。服务器正确接收消息。问题在于接收。我从c#服务器接收字节但是我想要一种方法将字节“转换”为相应的unicode字符串。

我尝试创建一个宽字符串对象:

wstring str = wstring((wchar_t *) buff);

并通过c_str()函数提取字符串,但结果字符串不是服务器发送的字符串!!

buff是从套接字收到的字节数组(unsigned char数组)。

任何帮助将不胜感激!!!

1 个答案:

答案 0 :(得分:3)

以下是我试图解决此问题的方法:

  1. 从服务器开始。检查要发送的数据。这是你期望的吗?
  2. 现在连接。运行Wireshark并检查通过以太网发送的实际数据。这是你期望的吗?
  3. 在客户端,检查缓冲区。这是你期望的吗?
  4. 在客户端,检查wstring。这是你期望的吗?
  5. 从一个已知实体(从服务器发送数据)开始,并检查它的每一步,以查看它停止在您预期的位置。这将告诉您错误的位置。一旦你知道,如果你仍然遇到问题,请发布有关错误的现场的详细信息。