套接字数据(char)c ++的十六进制表示

问题描述 投票:0回答:1

嗨,我正在使用C ++编写数据包嗅探器。它现在正在工作,但我收到一个字符缓冲区,我想以十六进制表示在屏幕上显示数据包数据。

我已经研究过char到十六进制的转换,但是当分组数据有一个带有扩展的ascii代码的字符,比如像'ê'字符或者其他像这样的字符串时,我有一个问题。当发生这种情况时,根据www.asciitohex.com中的转换,'ê'字符显示为{0xA8,0xBA},有时像{0xBA},而不像{0xC3,0xAA}。

int WINAPI send(SOCKET s, const char* buf, int len, int flags)
{
    //do the conversion of socket data here
    return pSend(s, buf, len, flags);
}
c++ sockets char hex
1个回答
0
投票

你没有“像'ê'字符那样的扩展ascii代码的字符”。你只有一个炭。您的问题来自将二进制文件转换为字符串,然后尝试将其转换为十六进制。只需直接从源字节数组转换数据。

© www.soinside.com 2019 - 2024. All rights reserved.