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

Python中如何将UTF-8字节对象转为"\xc3\xa9"格式的字符串?

解决方法:获取字节串的转义字符串表示

你想要的其实是把字节对象的转义序列表示提取成普通字符串,而不是对字节进行解码(解码会得到原字符"é",这显然不是你要的)。这里有两种简单的实现方式:

方法1:利用repr()函数快速提取

repr()函数会返回对象的官方字符串表示,对于字节串来说就是b'\xc3\xa9'这样的格式,我们只需要去掉首尾的b'和'即可:

test = "é".encode('utf-8')
# 用切片去掉开头的b'和结尾的'
escaped_str = repr(test)[2:-1]
print(escaped_str)  # 输出: \xc3\xa9

方法2:手动格式化每个字节

如果你需要更精细的控制(比如十六进制字母大写、自定义分隔符等),可以遍历字节串的每个字节,将其格式化为\xXX的形式:

test = "é".encode('utf-8')
# 遍历每个字节,格式化为\x开头的两位十六进制字符串
escaped_str = ''.join(f'\\x{byte:02x}' for byte in test)
print(escaped_str)  # 输出: \xc3\xa9
# 如果想要大写的十六进制,把02x改成02X
escaped_str_upper = ''.join(f'\\x{byte:02X}' for byte in test)
print(escaped_str_upper)  # 输出: \xC3\xA9

为什么之前的编码解码没用?

你尝试的编码解码操作是在字符和字节之间转换:比如test.decode('utf-8')会把字节b'\xc3\xa9'转回原字符串"é",这和你想要的“获取字节的转义字符串表示”是完全不同的需求,所以自然得不到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:40:01