Unicode格式的Python3表情字符 [英] Python3 emoji characters as unicode

查看:0
本文介绍了Unicode格式的Python3表情字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在python3中有一个字符串,其中包含表情符号,我希望将这些表情符号视为其Unicode表示形式。我需要在这种格式的表情符号上做一些操作。

s = '😬 😎 hello'

这会将每个表情符号视为其自己的字符,以便len(s) == 9&;&;s[0] == 😬

我希望更改字符串的格式,使其使用Unicode点,以便

s = '😬 😎 hello'
u = to_unicode(s)   # Some function to change the format.
print(u) # 'ud83dude2c ud83dude0e hello'
u[0] == 'ud83d' and u[1] == 'ude2c'
len(u) == 11

有没有想过创建一个函数to_unicode,该函数需要s并将其更改为u?我可能认为字符串/Unicode在python3中的工作方式是错误的,所以如果有任何帮助/更正,我将非常感激。

Utf

下面是一些代码,可以将映射到两个推荐答案-16单词的任何字符转换为十六进制序列。

s = 'U0001f62c U0001f60e hello'

def pairup(b):
    return [(b[i] << 8 | b[i+1]) for i in range(0, len(b), 2)]

def utf16(c):
    e = c.encode('utf_16_be')
    return ''.join(chr(x) for x in pairup(e))

u = ''.join(utf16(c) for c in s)
print(repr(u))
print(u[0] == 'ud83d' and u[1] == 'ude2c')
print(len(u))

'ud83dude2c ud83dude0e hello'
True
11

我以为这将是一件轻而易举的事情,但事实证明它比我预期的要棘手。尤其是因为我第一次没有完全理解这个问题。

这篇关于Unicode格式的Python3表情字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆