1

我怎么能输出任何东西æ,如果ø = ø

我猜左边是unicode,右边是别的东西,例如iso-8859-1,但是我怎么能打印出一个unicode字符在搞砸时会是什么?


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

4

1 回答 1

0

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

在 Python 3 中:

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

在 Python 2 中,使用u'æ'而不是'æ'.

于 2011-09-09T21:02:06.743 回答