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

Python 3中获取Emoji的UTF-8字节及反向显示实现方法

Python 3 中 emoji 与 UTF-8 字节的互转方法

获取 emoji 对应的 UTF-8 字节

Python 3 里的字符串默认是 Unicode 类型,要得到 emoji 的 UTF-8 字节表示,需要显式将字符串编码为 bytes 对象:

>>> emoji = '😋'
# 编码为 UTF-8 字节
>>> utf8_bytes = emoji.encode('utf-8')
>>> utf8_bytes
b'\xf0\x9f\x98\x8b'

如果需要得到类似 Python 2 中那种带 \x 前缀的字符串形式,可以通过遍历字节拼接实现:

>>> ''.join(f'\\x{byte:02x}' for byte in utf8_bytes)
'\\xf0\\x9f\\x98\\x8b'

从 UTF-8 字节还原 emoji

反过来,要从 UTF-8 字节序列得到对应的 emoji,只需将 bytes 对象解码为 Unicode 字符串即可:

方法1:直接使用 bytes 字面量解码

>>> b'\xf0\x9f\x98\x8b'.decode('utf-8')
'😋'
>>> print(b'\xf0\x9f\x98\x8b'.decode('utf-8'))
😋

方法2:从带 \x 的字符串还原

如果手里是类似 '\xf0\x9f\x98\x8b' 的字符串,需要先将其转换为 bytes 对象再解码:

>>> import codecs
>>> hex_str = '\\xf0\\x9f\\x98\\x8b'
# 转义字符串转为 bytes
>>> decoded_bytes, _ = codecs.escape_decode(hex_str)
# 解码为 emoji
>>> decoded_bytes.decode('utf-8')
'😋'

与 Python 2 的差异说明

Python 2 中默认字符串类型是字节序列(bytes),所以直接输入 emoji 字符串时,解释器会显示其 UTF-8 字节的转义形式;而 Python 3 明确区分了 Unicode 字符串和字节序列,必须通过显式的 encode()/decode() 操作来完成两者的转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:25:43