以下是我从wireshark获得的数据,但无法破解它。
char peer0_13[] = {
0x02, 0xb6, 0x8d, 0x7c, 0x7a, 0x56, 0x2f, 0x06,
0xde, 0x6c, 0xd9, 0x55, 0x78, 0xd3, 0x12, 0xf9,
0xe5, 0x4a, 0x57, 0x02, 0xdc, 0xb7, 0x1c, 0x75,
0x5b, 0x9c, 0x51, 0x51, 0x3e, 0x2a, 0x3a, 0x9a,
0xca, 0x50, 0xeb, 0x40, 0x28, 0x05, 0x00, 0xa0,
0x14, 0x02, 0x80, 0x50, 0x0a, 0x01, 0x40, 0x28,
0x05, 0x00, 0xa0, 0x14, 0x02, 0x80, 0x50, 0x0a,
0x01, 0x40, 0x28, 0x05, 0x00, 0xa0, 0x14, 0x02,
0x80, 0x50, 0x0a, 0x01, 0x40, 0x28, 0x05, 0x00,
0xa0, 0x14, 0x02, 0x80, 0x50, 0x0a, 0x01, 0x40,
0x28, 0x05, 0x00, 0xa0, 0x14, 0x02, 0x80, 0x50,
0x0a, 0x01, 0x40, 0x28, 0x05, 0x00, 0xa0, 0x14,
0x02, 0x80, 0x50, 0x0a, 0x01, 0x40, 0x28, 0x05,
0x00, 0xa0, 0x14, 0x02, 0x80, 0x50, 0x0a, 0x01,
0x40, 0x28, 0x05, 0x00, 0xa0, 0x14, 0x02, 0x80,
0x50, 0x0a, 0x01, 0x40, 0x28, 0x05, 0x00, 0xa0,
0x14, 0x02, 0x80, 0x50, 0x0a, 0x01, 0x40, 0x28,
0x05, 0x00, 0xa0, 0x14, 0x02, 0x80, 0x50, 0x0a,
0x01, 0x40, 0x28, 0x05, 0x00, 0xa0, 0x14, 0x02,
0x80, 0x50, 0x0a, 0x01, 0x40, 0x28, 0x05, 0x00,
0xa0, 0x3f, 0xff, 0xd9 };
我没有得到如何将此数据转换为纯文本/字符串以便于阅读。
以下是我用于获取纯文本的一些手动技巧。 (第一种解决方案不能正常工作,因为它给了我垃圾值。)
#1.
for (int i = 0; i <= sizeof (peer0_13); i++)
{
printf ("%c",peer0_13[i]);
}
#2.
cout << peer0_13 << endl ;
#3.
printf ("%s\n", peer0_13);
请帮助将此数据转换为普通字符串。 任何帮助将不胜感激。 :)
答案 0 :(得分:2)
您不能将上面的char矢量转换为String,因为我在最后一行之前看到了0x00。 char[]
是String
但如果您需要将其数据复制到普通字符串中,则必须使用循环逐个将所有字符复制到空字符串,但 0x00 value将截断字符串。
请注意,在第一个循环中,您需要将条件更改为i < sizeof (peer0_13)
并使用等号来提升索引超出范围的错误。
如果您打算将char数组读取为人类可以理解的字符串,并且您只需将其打印出来,则必须在将其复制到字符串中时排除空字符(0x00)或从中删除空字符数组,只需使用带有printf的%s。