我使用的是 Python 2.6.5,当我在 Python shell 中运行以下命令时,我得到:

>>> print u'Andr\xc3\xa9'
André
>>> print 'Andr\xc3\xa9'
André
>>>

上面的解释是什么?给定 u'Andr\xc3\xa9',如何在 html 页面中正确显示上述值,以便显示 André 而不是 André?

最佳答案

'\xc3\xa9' 是 unicode 字符 u'\u00e9' (也可以指定为 u'\xe9' )的 UTF-8 编码。所以你可以使用 u'Andr\u00e9'u'Andr\xe9'

您可以从一种转换为另一种:

>>> 'Andr\xc3\xa9'.decode('utf-8')
u'Andr\xe9'
>>> u'Andr\xe9'.encode('utf-8')
'Andr\xc3\xa9'

请注意,print 'Andr\xc3\xa9' 给您预期结果的原因仅仅是因为您系统的默认编码是 UTF-8。例如,在 Windows 上我得到:
>>> print 'Andr\xc3\xa9'
André

至于输出 HTML,这取决于你使用的 web 框架以及你在 HTML 页面中输出的编码。某些框架(例如 Django)会自动将 unicode 值转换为正确的编码,而其他框架则需要您手动执行此操作。

关于python - 为什么Python输出相同值的字符串和unicode不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2782085/

10-11 22:16