You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何字面解码TCP套接字接收的含转义序列字节串?

字面量解码字节串为ASCII字符串的解决方案

要把TCP接收到的字节串按字面转成ASCII字符串,完全保留所有字符(比如\x就当成反斜杠加x,不把它当十六进制转义),直接遍历每个字节转成对应ASCII字符就行,绕开Python的转义解析逻辑。

代码实现

# 假设var是从TCP套接字接收到的字节串
var = b'dir\\xfile'  # 实际接收的字节对应字面字符串'dir\xfile'
result = ''.join(chr(b) for b in var)
print(result)  # 输出:dir\xfile

针对你给出的示例(注意:示例里的\xbF是超出ASCII范围的字节,如果数据源确实全是ASCII,得先排查传输问题;要是必须处理非ASCII字节,可以替换成占位符):

var = b'var_\xbFEHDBJINDHBSGFWHSBWHBDFT'
# 只保留ASCII字节(0-127),非ASCII用?替代
result = ''.join(chr(b) if b <= 127 else '?' for b in var)
print(result)  # 输出:var_?EHDBJINDHBSGFWHSBWHBDFT

为什么这个方法管用

  • 逐个字节转chr(),完全不触发Python对\x这类转义序列的解析,确保每个合法ASCII字节都对应成字面字符。
  • 不像unicode_escape解码那样会尝试解析转义,也不会因为解码错误删掉字符,完美保留原始字节的字面含义。

内容的提问来源于stack exchange,提问作者Fumbleless

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:15:14