如果这是一个很长的问题,请谅解:
我已经用Python编程大约六个月了。自学,从Python教程开始,然后是Stack Overflow,最后只要需要就在Google上搜索。
这里有个悲伤的部分:没有人告诉我所有的字符串都应该是Unicode。不,我不是在撒谎或捏造事实,但是教程在哪里提到了呢?而且我看到的大多数例子都使用字节串而不是Unicode字符串。我正在浏览时看到了这个SO上的问题,它说Python中的每个字符串都应该是Unicode字符串。这几乎让我哭了!
我读到Python 3.0中默认情况下每个字符串都是Unicode,所以我的问题是针对2.x版本的:
我应该这样做:
print u'Some text'
还是只需要print 'Text'
?一切都应该是Unicode,这是否意味着,比如说我有一个
tuple
:t = ('First', 'Second')
,它应该是t = (u'First', u'Second')
?我读到可以使用
from __future__ import unicode_literals
,然后每个字符串都将成为Unicode字符串,但是我是否也应该在容器中这样做?读/写文件时,我应该使用
codecs
模块。对吗?还是应该使用标准的读/写方式,在需要时进行编码或解码?如果我从
raw_input()
获取字符串,那么我是否也应该将其转换为Unicode?
在2.x中处理上述所有问题的常见方法是什么?是使用 from __future__ import unicode_literals
语句吗?
对不起,我是一个新手,但这改变了我长期以来一直在做的事情,所以显然我很困惑。
from __future__ import unicode_literals
,复数形式。 - Karl Knechtel