我正在使用dpkt python模块来解析pcap文件。我正在深入研究数据包,其中一些数据表示为字节流。我可以很容易地从常规字节字符串转换,但是一些字节字符串显示为:
\吨\ X01 \ X1C \ X88
第一个值应为09,但由于某种原因,它使用的是转义制表符。 (标签的十六进制代码是09)。
它也在为其他流中的其他角色执行此操作。
更多样本输出:
\ X10 \ X00 @ \ X00 \
\ x05q \ X00 \ X00 \
\ x069 \ x9c \ n \ X00
所以我的问题是:我可以将这个字节流转换为没有这些额外字符的字节流吗?
或者,我如何将'\ t'之类的内容转换为十六进制,以便返回'09'?
更新
原来我正在创建要使用将返回的函数转换的字符串 \ t011c88代替第一个流。
单独使用stream.encode(“hex”)工作
答案 0 :(得分:1)
默认情况下,repr
功能会转义您看过的所有不可打印的字符。
要获取仅十六进制表示,请使用
string.encode("hex")
注意:原始字节流是正确的,您应该只转换为十六进制用于查看目的而不是整合目的。它只以奇怪的方式显示数据。