【问题标题】:How to display a character in the wrong characterset如何在错误的字符集中显示字符
【发布时间】:2011-07-14 21:02:57
【问题描述】:

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

我猜左边是 unicode,右边是别的东西,例如 iso-8859-1,但是我怎么能打印出一个 unicode 字符被弄乱了?


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

【问题讨论】:

  • 联系 Steam 客服似乎最容易解决您的问题。
  • 那个特殊情况,可能是的。但是我在这里从开发人员的角度很好奇。不管它是否能解决问题,我都很好奇如何通过编程来做到这一点:)

标签: character-encoding special-characters mojibake


【解决方案1】:

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

在 Python 3 中:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-10
    • 2023-04-05
    • 1970-01-01
    • 2020-01-15
    • 2021-05-02
    • 2020-12-26
    • 2017-05-28
    • 1970-01-01
    相关资源
    最近更新 更多