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

标签 c# c++ sockets unicode

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

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

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

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

其中 buff 是我从套接字接收的字节数组(无符号字符数组)。

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

最佳答案

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

  1. 从服务器开始。检查要发送的数据。是您所期望的吗?
  2. 现在连接。运行 Wireshark 并检查通过以太网发送的实际数据。是您所期望的吗?
  3. 在客户端,检查缓冲区。是您所期望的吗?
  4. 在客户端,检查wstring。是您所期望的吗?

从一个已知实体(从服务器发送的数据)开始,并检查它的每一步,看看它在哪里不再像你期望的那样。这会告诉你错误在哪里。一旦您知道这一点,如果您仍然遇到问题,请发布有关错误位置的详细信息。

关于c# - C++ 将 UTF 字节数组转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705059/

相关文章:

c# - 带有 Sublime 的 ScriptCS

c++ - 在 UNIX 中输出退格字符

c++ - 如何从 while 循环中添加数字?

java - Netty channel.write 不写消息

android - Android 上的 SSL 客户端

c# - 没有任何 SELECT(!) : "There is already an open DataReader associated with this Connection"

c# - 具有对象类型的 Entity Framework 复合主键

c# - assembly.CreateInstance 返回 null

c++ - 用户 DLL/EXE 中的堆分配失败

c - Linux C socket服务器printf问题