可以在Python中打印带有模式的表情符号的十六进制代码,例如u'\uXXX'>>> print(u'\u231B')⌛但是,如果我有一个十六进制代码列表,例如,只是“添加”字符串将不起作用:231B>>> print(u'\u' + ' 231B') File "<stdin>", line 1SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape失败也:chr()>>> chr('231B')Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: an integer is required (got type str)我的问题的第一部分是给出十六进制代码,例如231A如何获得表情符号的str类型?我的目标是从 https://unicode.org/Public/emoji/13.0/emoji-sequences.txt 获取表情符号列表,并阅读第一列上的十六进制代码。在某些情况下,它的范围从 ,我的问题的第二部分被赋予了一个十六进制代码范围,我如何迭代范围以获得表情符号 str,例如,这是可以做到的,但如果六进制中有一个字符,例如,使用是不可能的。231A..231B2648..2653range(2648, 2653+1)1F232..1F236range()
1 回答
倚天杖
TA贡献1828条经验 获得超3个赞
将十六进制字符串转换为数字,然后使用:chr
chr(int('231B', 16))
# => '⌛'
或直接使用十六进制文字:
chr(0x231B)
同样,要使用范围,您需要一个 int,它可以从字符串转换而来,也可以使用十六进制文本:
''.join(chr(c) for c in range(0x2648, 0x2654))
# => '♈♉♊♋♌♍♎♏♐♑♒♓'
或
''.join(chr(c) for c in range(int('2648', 16), int('2654', 16)))
(注意:你会得到一些非常不同的东西!range(2648, 2654)
添加回答
举报
0/150
提交
取消