Python 2.7で.lower()
を使用すると、文字列が小文字の_ŠČŽ
_で小文字に変換されません。辞書からデータを読み取ります。
str(tt["code"]).lower()
、tt["code"].lower()
を使ってみました。
助言がありますか ?
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
オブジェクトとして作成されます。
ユニコードを使用:
_>>> print u'ŠČŽ'.lower().encode('utf8')
ščž
>>>
_
テキストをUnicodeに変換する必要がありますプログラムに入るとすぐに問題に気づいた時点ではなく、外界から==。
したがって、codecs
モジュールを使用して、デコードされたテキストを読み取るか、'bytestring'.decode('latin2')
を使用します(latin2の代わりに、実際のエンコードが何であれ使用する必要があります)。