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

如何获取表情符号的UTF-8二进制表示?代码执行结果异常求助

问题原因与解决方案:获取表情符号的UTF-8二进制表示

原因分析

你遇到的差异是Python 2和Python 3字符串模型的区别导致的:

  • 视频中的代码逻辑基于Python 2:Python 2的str类型本质是字节串,表情符号👍在UTF-8编码下占4个字节,所以len(s)返回4,s[0]取到第一个字节\xf0。
  • 你当前使用的是Python 3:Python 3彻底区分了Unicode字符串(str)和字节串(bytes)。str类型存储的是Unicode码点,👍是单个Unicode码点,因此len(s)返回1,s[0]直接返回整个表情符号。

正确获取UTF-8二进制表示的方法

要获取表情符号的UTF-8字节序列,需要先将Unicode字符串编码为bytes类型,使用encode('utf-8')方法:

基础示例代码

s = '👍'
# 转换为UTF-8字节串
utf8_bytes = s.encode('utf-8')

# 查看字节长度(UTF-8下占4字节)
print(len(utf8_bytes))  # 输出:4

# 查看单个字节的十进制/十六进制值
print(utf8_bytes[0])        # 输出:240(对应十六进制0xf0)
print(hex(utf8_bytes[0]))   # 输出:0xf0

# 查看完整的UTF-8字节序列
print(utf8_bytes)  # 输出:b'\xf0\x9f\x91\x8d'

遍历输出每个字节的十六进制格式

如果需要逐个输出字节的\x格式:

for byte in utf8_bytes:
    print(f'\\x{byte:02x}')

输出结果:

\xf0
\x9f
\x91
\x8d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:04:58