如何将“明文”Java源代码点以编程方式转换为Python3中的表情符号?

时间:2018-02-20 16:17:37

标签: java python-3.x unicode emoji

我编写了一个Python3脚本,用于从文本文件中为表情符号字符(例如\ud83d\ude00)提取C / C ++ / Java源代码点/代理项对的字符串。

我在这个脚本中也有一个字典,将表情符号映射到他们的描述(“”=“>”笑脸“)。如何将代理对(\ud83d\ude00,字符串文字)转换为表情符号对应物,以便将它们用作键来访问字典中相应的表情符号描述?

对于一些其他信息,我正在以这样的方式提取字符串:当我运行print(extracted_string)时,控制台输出为\ud83d\ude00。当我尝试将表情符号键的值赋给变量时,我收到一个错误:

description = dictionary[extracted_string]
KeyError: '\\ud83d\\ude00'

2 个答案:

答案 0 :(得分:1)

这也与JSON的编码相同。

>>> import json
>>> json.loads('"\\ud83d\\ude00"')
''

答案 1 :(得分:0)

花了一些挖掘和一大堆编码/解码,但我发现了一些有用的东西:

extracted_string = '\\ud83d\\ude00' #String literal as read from file
emoji = extracted_string.encode().decode('unicode-escape').encode('utf-16', 'surrogatepass').decode('utf-16')
print(emoji)

输出:

  
    

  

@falestru的答案中略有修改:https://stackoverflow.com/a/26311382/1082235