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

如何将含转义字节序列的字符串转换为对应bytes对象?

包含转义字节序列的字符串转bytes对象解决方案

你的问题核心是:当前字符串中的\xfa这类转义序列已经被Python解析为对应Unicode字符,而非字面转义文本,所以打印显示乱码,无法直接转换为目标bytes对象。以下是两种可行方案:

方案1:利用编码转换还原字节

通过unicode-escape编码将字符转回转义形式,再通过latin-1映射回原始字节:

s = '\xfa\x7f\xe5<\xcf\xda\xf0v\xf1\x94\xd8q7w,\x1d\x1d\x9eU\xf6O\x9fnW~\xf0\xdd\xad\xd2\xf7\x13\nA\xbb\xda\xa2rge\xb02_3\xcb\x81\x03\xcb \x1c\x86\xbb\n\x04r\xcdCKQ\x9ew\xe7\xf1{\x08'
result = s.encode('unicode-escape').decode('latin-1').encode('latin-1')
print(result)

执行后将输出你需要的b'\xfa\x7f\xe5<\xcf\xda\xf0v\xf1\x94\xd8q7w,\x1d\x1d\x9eU\xf6O\x9fnW~\xf0\xdd\xad\xd2\xf7\x13\nA\xbb\xda\xa2rge\xb02_3\xcb\x81\x03\xcb \x1c\x86\xbb\n\x04r\xcdCKQ\x9ew\xe7\xf1{\x08'。

方案2:基于原始字面量转换

若能获取未被解析的原始字符串(带r''标记),可直接转换:

raw_str = r'\xfa\x7f\xe5<\xcf\xda\xf0v\xf1\x94\xd8q7w,\x1d\x1d\x9eU\xf6O\x9fnW~\xf0\xdd\xad\xd2\xf7\x13\nA\xbb\xda\xa2rge\xb02_3\xcb\x81\x03\xcb \x1c\x86\xbb\n\x04r\xcdCKQ\x9ew\xe7\xf1{\x08'
result = bytes(raw_str, 'utf-8').decode('unicode-escape').encode('latin-1')
print(result)

原理说明

  • unicode-escape编码会将Unicode字符转换为对应的转义字节序列(如ú转为\xfa)。
  • latin-1是单字节编码,能保证每个字节与Unicode字符一一映射,不会丢失信息。
  • 最后通过latin-1编码,将字符还原为原始字节值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:40:24