python 2.7小写

时间:2012-03-30 12:41:56

标签: python python-2.7 unicode lowercase python-unicode

当我在Python 2.7中使用.lower()时,字符ŠČŽ不会将字符串转换为小写。 我从字典中读取数据。

我尝试使用str(tt["code"]).lower()tt["code"].lower()

有什么建议吗?

2 个答案:

答案 0 :(得分:25)

使用unicode字符串:

drostie@signy:~$ python
Python 2.7.2+ (default, Oct  4 2011, 20:06:09) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "ŠČŽ"
ŠČŽ
>>> print "ŠČŽ".lower()
ŠČŽ
>>> print u"ŠČŽ".lower()
ščž

看到那个小u?这意味着它被创建为unicode对象而不是str对象。

答案 1 :(得分:4)

使用unicode:

>>> print u'ŠČŽ'.lower().encode('utf8')
ščž
>>>

您需要在从外部世界进入程序时将文本转换为unicode ,而不仅仅是在您发现问题的位置。

因此,要么使用codecs模块来读取已解码的文本,要么使用'bytestring'.decode('latin2')(代替latin2,你应该使用实际的编码)。