如何在错误的字符集中显示字符

时间:2011-07-14 21:02:58

标签: character-encoding special-characters mojibake

如果æ

,我如何输出ø = ø的任何内容?

我猜左侧是unicode而右侧是其他的东西,例如iso-8859-1,但是如何打印出搞乱的unicode角色呢?


Backstory :我在这里遇到一些奇怪的问题,Steam搞乱角色编码。试图帮助朋友恢复帐户,我认为他们在秘密答案中使用了æ字母。重置密码的对话框不接受该字母,并且如果我们尝试自然替代方案,它说答案是错误的。在我收到的恢复电子邮件中,字母ø在秘密问题中显示为ø。所以,我想也许当答案和问题被创建时,字母æ被接受了,但是搞砸了。想象我可以尝试使用混乱的等价物,但不知道那是什么,我的编程技巧让我自己找不到它:p

1 个答案:

答案 0 :(得分:0)

在Python中,您可以将字符串编码为UTF-8中的字节字符串,然后使用iso-8859-1将字节字符串转换为(文本)字符串。结果将是所需的mojibake

在Python 3中:

>>> 'æ'
'æ'
>>> 'æ'.encode('utf8')
b'\xc3\xa6'
>>> 'æ'.encode('utf8').decode('iso-8859-1')
'æ'

在Python 2中,使用u'æ'代替'æ'