You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在Python中使用带Unicode编码的字符串?以U+1F44D为例

在Python中使用Unicode字符串(以点赞emoji U+1F44D为例)

嘿,我来帮你理清这个问题!在Python里用Unicode字符其实没那么复杂,咱们逐个拆解你提到的几种写法,看看哪些能用,哪些不行:

先排除错误写法

  • u'U+1F44D':这种写法会直接输出字面字符串 "U+1F44D",完全不是你要的emoji——因为你只是把这些字符当成普通文本写进去了,Python不会把它解析成Unicode码点。
  • u'1F44D':同理,这只是一个包含四个字符的字符串 "1F44D",和点赞emoji没有任何关系。
  • u'0x1F44D':这也是字面字符串 "0x1F44D",Python不会把它当成十六进制码点处理。

正确的写法

1. 使用chr()函数(Python 3)

在Python 3中,chr()函数接受一个Unicode码点的整数(比如十六进制的0x1F44D),返回对应的Unicode字符:

print(chr(0x1F44D))  # 输出:👍

2. 使用Unicode转义序列

Python支持直接在字符串里用转义序列表示Unicode字符,对于U+1F44D这种4字节的Unicode字符,需要用\U(大写U)加上8位十六进制数:

# Python 3中字符串默认是Unicode,不需要u前缀,加了也没问题
print('\U0001F44D')  # 输出:👍
print(u'\U0001F44D') # 同样有效,输出:👍

3. 直接写入emoji字符(如果编辑器支持)

如果你的代码编辑器和终端能正常显示emoji,直接把👍写进字符串里就行,Python 3会自动识别为Unicode字符:

print('👍')  # 输出:👍

补充:Python 2的情况(如果还在用的话)

Python 2中字符串默认是字节串,需要用u前缀声明Unicode字符串,并且要用unichr()函数来获取Unicode字符:

print(unichr(0x1F44D))  # 输出:👍
print(u'\U0001F44D')    # 同样有效,输出:👍

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

火山引擎 最新活动