在 python 中保留表情符号的 unicode

Preserve unicode of emojis in python

我正在处理 emojis Unicode 并希望使用其相应的 Unicode 保存图像,例如 1F636_200D_1F32B_FE0F 用于 https://emojipedia.org/face-in-clouds/

但是对于 https://emojipedia.org/keycap-digit-one/,文件最终是 1_FE0F_20E3,我需要它们是 0031_FE0F_20E3 有没有办法告诉编码器不要解析 1

>>> '1️⃣'.encode('unicode-escape').decode('ascii')
'1\ufe0f\u20e3'

unicode_escape 编解码器将 ASCII 字符显示为字符,仅将非 ASCII 字符显示为转义码。如果要全部都是转义码,就得自己格式化:

>>> ''.join([f'\u{ord(c):04x}' if ord(c) < 0x10000 else f'\U{ord(c):08x}' for c in '‍️'])
'\U0001f636\u200d\U0001f32b\ufe0f'
>>> ''.join([f'\u{ord(c):04x}' if ord(c) < 0x10000 else f'\U{ord(c):08x}' for c in '1️⃣'])
'\u0031\ufe0f\u20e3'

或者您可能需要这种格式?

>>> '_'.join([f'{ord(c):04X}' for c in '1️⃣'])
'0031_FE0F_20E3'
>>> '_'.join([f'{ord(c):04X}' for c in '‍️'])
'1F636_200D_1F32B_FE0F'