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