有没有办法从 CP1258 文本编码中恢复叮当响的啤酒表情符号?

Is there a way to recover a clinking beer emoji from CP1258 text encoding?

我有这个表情符号'' (U+1F37B)。当编码到 CP1258 中时,我有它的明文,即“🻔。我发现 this 个关于如何正确更改编码的问题。我试图对“🻔执行同样的程序,但它只是让程序崩溃了。有没有办法可靠地做到这一点,而不仅仅是创建一个以“🻔为键和“”为值的字典? Java、Python、C# 或 Javascript 中的示例表示赞赏:)

编辑:这就是 Notepad++ 所做的。不确定是什么意思:

你错了,显示的不是CP1258,是CP1252。您获得的字节是 UTF-8 编码的,其中一个无法显示 - 有 4 个字节,而不是 3 个。这里有一些 Python:

>>> '\U0001f37b'.encode('utf-8')
b'\xf0\x9f\x8d\xbb'
>>> '\U0001f37b'.encode('utf-8').decode('cp1258','ignore')
'đŸ»'
>>> '\U0001f37b'.encode('utf-8').decode('cp1252','ignore')
'ðŸ»'

恢复表情符号字符只需再次解码这些字节即可:

>>> '\U0001f37b'.encode('utf-8').decode('utf-8','ignore')
'\U0001f37b'