Python 2.7 で使用する.lower()
と、文字列が文字の小文字に変換されませんŠČŽ
。辞書からデータを読み取ります。
str(tt["code"]).lower()
、を使ってみtt["code"].lower()
ました。
助言がありますか ?
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 の代わりに実際のエンコーディングを使用する必要があります) を使用します。