Python 2.7で.lower()
を使用すると、文字列がŠČŽ
の場合、文字列は小文字に変換されません。 辞書からデータを読みます。python 2.7小文字
str(tt["code"]).lower()
,tt["code"].lower()
を試しました。
提案がありますか?
Python 2.7で.lower()
を使用すると、文字列がŠČŽ
の場合、文字列は小文字に変換されません。 辞書からデータを読みます。python 2.7小文字
str(tt["code"]).lower()
,tt["code"].lower()
を試しました。
提案がありますか?
利用ユニコード文字列:
[email protected]:~$ 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
を参照してください?つまり、str
オブジェクトではなく、unicode
オブジェクトとして作成されています。
使用ユニコード:
>>> print u'ŠČŽ'.lower().encode('utf8')
ščž
>>>
あなたではなく、単にあなたが問題に気付いた時点でよりも、できるだけ早くそれは外の世界からあなたのプログラムに入るとをUnicodeにテキストを変換する必要があります。
したがって、codecs
モジュールを使用して復号化されたテキストを読むか、'bytestring'.decode('latin2')
を使用してください(latin2の代わりに実際のエンコーディングを使用する必要があります)。
http://stackoverflow.com/questions/727507/how-can-i-do-unicode-uppercaseを見て、おそらく関連していると思います。 – mgilson