一般用lower()
方法将字符串转换为小写
"Kilometer".lower()
'kilometers'
Code language: JavaScript (javascript)
如果目的是进行不区分大小写的匹配,则应使用casefold
>>> 'Kilometers'.casefold()
'kilometers'
Code language: JavaScript (javascript)
原因如下:
>>> "Maße".casefold()
'masse'
>>> "Maße".lower()
'maße'
>>> "MASSE" == "Maße"
False
>>> "MASSE".lower() == "Maße".lower()
False
>>> "MASSE".casefold() == "Maße".casefold()
True
Code language: PHP (php)
使用 Unicode 文字,而不是str文字
所以我们需要一个unicode字符串来处理这个转换,用一个 unicode 字符串文字轻松完成,它用u前缀消除歧义(注意u前缀也适用于 Python 3):
>>> unicode_literal = u'Километр'
>>> print(unicode_literal.lower())
километр
Code language: PHP (php)
如果只有 str形式 的a,需要将它转换为unicode. Python 的 Unicode 类型是一种通用编码格式,相对于大多数其他编码具有许多优点。可以使用带有编解码器的unicode构造函数或str.decode方法将str转换为unicode:
>>> unicode_from_string = unicode(string, 'utf-8') # "encoding" unicode from string
>>> print(unicode_from_string.lower())
километр
>>> string_to_unicode = string.decode('utf-8')
>>> print(string_to_unicode.lower())
километр
>>> unicode_from_string == string_to_unicode == unicode_literal
True
Code language: PHP (php)
Python2中可以使用decode
对于 Python 2,这不适用于 UTF-8 中的非英语单词。在这种情况下decode('utf-8')
可以帮助:
>>> s='Километр'
>>> print s.lower()
Километр
>>> print s.decode('utf-8').lower()
километр
Code language: PHP (php)