python - 在python中保留表情符号的unicode
问题描述
我正在处理 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'
推荐阅读
- ios - Ionic 3 - 应用程序卡在启动画面上。在我进行更改并在模拟时刷新后开始运行(iOS)
- node.js - Https createServer,加载cookie和加载客户端index.html
- android - android安装失败-“cmd:找不到服务:包”(不是模拟器)
- c# - 如何解释 IEnumerable.Where() 子句的这种难以理解的结果?
- javascript - 使用 HREF 标记在折叠菜单内导航
- php - 仅当您登录 Laravel 时才创建工作
- javascript - 当参数是javascript中字符串和数组(对象)的组合时,如何构建函数?
- asp.net-mvc - 如何使用 Linq 过滤列表内的列表?
- django - 反向代理Nginx+Docker+Django项目后在本服务器上找不到请求的资源报错
- java - 文件上传在 JAX-rs , Jersey 中给出 415 Unsupported Media Type