字节到字符串的转换

2024-10-02 00:37:19 发布

您现在位置:Python中文网/ 问答频道 /正文

Im正在从tcp连接读取数据。如果我从wireshark(网络监视器)读取数据,我得到的是02501c41d11ec06a471102,但如果我用python读取数据,则以字节为单位:

b'\x02P\x1cA\xd1\x1e\xc0jG\x11\x02'
<class 'bytes'>

我怎么转换这个? 我试过了:

^{pr2}$

但如果在运行中我得到:

b'\x02P\x1cA\xd1\x00\x00\x02\xcb\x11\x00'
Traceback (most recent call last):
  File "Z:/programeren/domotica/try again/receive.py", line 18, in <module>
    data2 = data.decode("utf-8")
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd1 in position 4: invalid continuation byte

只是想说清楚我想转身

b'\x02P\x1cA\xd1\x00\x00\x02\xcb\x11\x00'

进入

02501c41d11ec06a471102

Tags: inbyte读取数据utftcpdecodex00wireshark
1条回答
网友
1楼 · 发布于 2024-10-02 00:37:19

使用binascii.b2a_hex(或比纳西伊·赫克斯利菲). 在

>>> import binascii
>>> binascii.b2a_hex(b'\x02P\x1cA\xd1\x00\x00\x02\xcb\x11\x00')
b'02501c41d1000002cb1100'
>>> binascii.b2a_hex(b'\x02P\x1cA\xd1\x00\x00\x02\xcb\x11\x00').decode('ascii')
'02501c41d1000002cb1100'

相关问题 更多 >

    热门问题