我编写了一个Python3脚本,用于从文本文件中为表情符号字符(例如\ud83d\ude00
)提取C / C ++ / Java源代码点/代理项对的字符串。
我在这个脚本中也有一个字典,将表情符号映射到他们的描述(“”=“>”笑脸“)。如何将代理对(\ud83d\ude00
,字符串文字)转换为表情符号对应物,以便将它们用作键来访问字典中相应的表情符号描述?
对于一些其他信息,我正在以这样的方式提取字符串:当我运行print(extracted_string)
时,控制台输出为\ud83d\ude00
。当我尝试将表情符号键的值赋给变量时,我收到一个错误:
description = dictionary[extracted_string]
KeyError: '\\ud83d\\ude00'
答案 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