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

Python3中如何将含字面量字节的字符串重新解释为字节并解码?

解决方法:无需手动分离,一步转码搞定

你完全不用手动查找分离那些Unicode转义字符,Python有个非常简便的方法处理这种情况:

首先,你的字符串里那些\xe3之类的转义序列,实际上对应的是Unicode中U+00E3这类单字节字符(ASCII和这些转义后的字符都落在Latin-1编码的覆盖范围内)。利用Latin-1编码一对一映射Unicode单字节字符到字节值的特性,我们可以先把字符串转回字节序列,再解码成你需要的UTF-16编码。

具体代码如下:

# 假设你的字符串变量是s
s = "The message - \xe3\x83\xa9\xe3\x82\xa4 ... that was the message"

# 第一步:用latin-1编码把字符串转成bytes,完美还原原始字节
raw_bytes = s.encode('latin-1')

# 第二步:解码成UTF-16(如果实际需要的是UTF-8,把参数换成'utf-8'即可)
decoded_text = raw_bytes.decode('utf-16')

print(decoded_text)

为什么这个方法有效?

Latin-1(也叫ISO-8859-1)编码的范围正好覆盖了Unicode的U+0000到U+00FF区间,每个Unicode字符都会被直接转换成对应的字节值(比如U+00E3对应字节0xE3)。这就相当于把字符串里的每个字符“还原”成它原本代表的字节,完全不需要手动处理那些转义序列。

只要你的字符串里只有ASCII字符和这类\xXX形式的转义(也就是都在U+0000到U+00FF范围内),这个方法就不会出问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:26:33