Python - Türkçe Karakter Problemi

Python programlama dili Guido van Rossum tarafından geliştirilmiş, yüksek seviye veri tipleri olan, nesneye yönelik, esnek, kolay öğrenilebilen bir programlama dilidir. Unix ve türevleri, Mac, MS-DOS tabanlı, Windows ve OS/2 işletim sistemlerinde çalıştırabileceğiniz, anlaşılır yazımı ve mantığıyla, güçlü bir dildir. İsmi genel kanı olan piton yılanından değil, BBC'de yayınlanan "Monty Python" adlı bir komedi dizisinden gelmektedir.

Python öğrenmek konusunda en büyük kaynak kendi sitesindeki dökümantasyonudur. Bunun dışında Python hakkında detaylı bir kitap olan "Dive Into Python" elektronik halde http://diveintopython.org/ adresinden erişebilirsiniz. Python3.0 versiyonu için http://diveintopython3.org/ adresini kullanabilirsiniz. Dizgi sabitleri, biçimlemeler ve işlemleri için http://docs.python.org/library/string.html adresi kendi sitesindeki dökümanıdır. Bu konuda bana göre en iyi Türkçe kaynak ise pardus-linux sitesindeki açıklama ve örneklerdir.

Katar metotları üzerinde çalışma yaparken python'da bi Türkçe karakterler üzerinde bir hata olduğunu farkettim. İnternette biraz araştırma yaptıktan sonra pythonun hata listerinde bu sorunun girildiğini gördüm. Türkçe karakter kümesi tablosunda bir bozukluk var anlaşılan.

str.lower() verilen katarı küçük harflere, str.upper() verilen katarı büyük harflere çeviren yordamdır.

>>> import locale
>>> locale.setlocale(locale.LC_ALL,'Turkish_Turkey.1254')
'Turkish_Turkey.1254'

Türkçe karakterlerini göstermede herhangi bir sorun gözükmemektedir.

>>> print "ŞşİiÇçIıĞğÖöÜü"
ŞşİiÇçIıĞğÖöÜü

Ancak bunları büyük ya da küçük harflere çevirirken alınan sonuçlar hatalıdır. "İ" ve "ı" harflerinin karakter eşlemeleri yanlıştır.

>>> print "Ş-ş-İ-i-Ç-ç-I-ı-Ğ-ğ-Ö-ö-Ü-ü".lower()
ş-ş-ı-i-ç-ç-i-ı-ğ-ğ-ö-ö-ü-ü

>>> print "Ş-ş-İ-i-Ç-ç-I-ı-Ğ-ğ-Ö-ö-Ü-ü".upper()
Ş-Ş-İ-I-Ç-Ç-I-İ-Ğ-Ğ-Ö-Ö-Ü-Ü

Comments

Popular posts from this blog

JACKSON ile JSON işleme

Python & Java Karşılaştırma (Sıralama Algoritmaları)