我在使用 Python 3 时遇到了一个非常奇怪的问题:
>>> a = "abcé"
>>> a
'abcé'
>>> print(a)
abcé
>>> print(a.lower())
abc�
我不知道这是从哪里来的,但它无法小写 unicode 字符。请注意,我无法在所有地方重现错误,这只是在我的一台计算机上出现以下问题。此外,同一台计算机上的 python2 可以正确打印 abcé。
此外,a.upper() 返回的是 ABCé 而不是 ABCÉ,因此它不会遇到与 相同的问题降低..
有什么想法吗?
请您参考如下方法:
我不完全确定这里发生了什么,但看起来 python 和您的终端之间存在一些编码问题。
最好的做法是将所有内容都保存在 'utf-8' 中,以确保您可以执行 import locale 和 locale.setlocale(locale.LC_ALL, 'en_US.UTF- 8') 从 python 中或执行 export LC_ALL=en_US.utf8。
我不是 100% 精通这些编码主题,因此也许编码专家有更好的答案/解释,但这应该可以解决您的问题。
