在 C++ 中将字节字符串转换为普通字符串

Posted

技术标签:

【中文标题】在 C++ 中将字节字符串转换为普通字符串【英文标题】:Convert byte string to normal string in C++ 【发布时间】:2018-01-05 10:43:50 【问题描述】:

我有以下情况:

我实际上是在尝试将流数据从服务器读取到 Visual Studio 中的标签中:

//Receive a reply from the server
if((recv_size = recv(ConnectSocket , server_reply , 2000 , 0)) == SOCKET_ERROR)
    MessageBox::Show("recv failed","");
    //exit(1);


this->label1->Text = Convert::ToString(server_reply[0]);

示例结果: ANAG;FCA;11:20:27;NL0010877643;菲亚特克莱斯勒汽车;16.85;0.0;0

当我把它加入我的程序时,我有它: 657865...

我认为是相应字符的字节表示(例如:65 = A、78 = N 等)。

问题是:如何将这些字节码转换成正常的字符串?

服务器似乎在发送字节数据

提前致谢

【问题讨论】:

为什么是图片?你能把它输入到问题中吗 这些数据是如何到达您的程序的?你是怎么打印的?服务器实际上是对它进行十六进制编码还是它是你如何操纵它的产物? 至少显示一些代码。我们不知道你在做什么。下面的答案可能就是你要找的 【参考方案1】:

你只需要从中创建一个字符串。

#include <iostream>
#include <string>

using namespace std;

int main()

  char byteArray[] =  65, 78, 65, 71 ; // .... your input
  std::string s(byteArray, sizeof(byteArray));
  cout << s;
  return 0;

【讨论】:

以上是关于在 C++ 中将字节字符串转换为普通字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中将字节数组转换为十六进制字符串?

在 C++ 中将十六进制字符串转换为字节数组

如何在 Visual C++ 中将字节数组转换为十六进制字符串?

如何在c ++中将数组字节转换为字符串?

在C++中,如何把字节数组转换成字符串

QT中将gbk字符转换为utf-8字符