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

时间:2017-05-09 01:08:03

标签: unicode character-encoding emoji

我有这个表情符号''(U + 1F37B)。编码到CP1258时,我的明文是“🻔。我发现this有关如何正确更改编码的问题。我试图按照“🻔这个相同的程序,但它只是破坏了程序。有没有办法可靠地做到这一点,而不只是创建一个字典,其中“🻔作为键,而''作为值? Java,Python,C#或Javascript中的示例表示赞赏:)

编辑:这就是Notepad ++所做的。不确定它的含义:Notepad++ emoji

1 个答案:

答案 0 :(得分:1)

你错了,它没有在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'