Python: Windows’ta Türkçe Karakter Sorunu
Diyelim ki elimizde şöyle bir şey var:
#-*- coding: cp1254 -*- def kayit_ekle(isim, soyisim, sehir, meslek, tel, adres): kayit = {} kayit["%s %s" %(isim, soyisim)] = [sehir, meslek, tel, adres] print "\nBağlantı bilgileri kayıtlara eklendi!\n" for k, v in kayit.items(): print k print "-"*len(k) for i in v: print i kayit_ekle(isim = "Abdurrahman", soyisim = "Çelebi", meslek = "Öğretmen", tel = "0212 123 45 67", sehir = "İstanbul", adres = "Çeliktepe")
Bu kodları (utf-8 ile) GNU/Linux’ta çalıştırırken herhangi bir Türkçe karakter sorunuyla karşılaşmıyoruz. Ancak aynı kodları Windows’ta çalıştırmak istediğimizde şöyle bir çıktı alıyoruz:
Balant² bilgileri kay²tlara eklendi! Abdurrahman Ãelebi ------------------ ¦stanbul Íretmen 0212 123 45 67 Ãeliktepe
Gördüğünüz gibi bütün Türkçe karakterler birbirine girmiş durumda. Bunun temel sebebi Windows’ta komut satırının öntanımlı yazı tipinin unicode karakterleri gösterememesi. Yani aslında komut satırının kendisi Türkçe karakterleri düzgün bir şekilde algılayabiliyor. Ancak kullanılan öntanımlı yazı tipi bu karakterlerin düzgün bir şekilde gösterilmesine müsaade etmiyor… Ayrıca ortaya çıkan bu durumda, MS-DOS’un öntanımlı kod sayfasının da etkisi var.
Yukarıdaki sorundan kurtulmak için şu işlemleri yapmamız gerekiyor:
1. Önce kullanılan kod sayfasını değiştiriyoruz:
chcp 12542. Ardından pencere başlığına sağ tıklayıp “özellikler”e giriyoruz.
3. Yazı Tipi sekmesi içinde yazı tipini “Lucida console” olarak değiştiriyoruz.
4. Tamam’a basıyoruz.
5. Karşımıza çıkan pencerede, “özellikleri sadece geçerli pencereye uygula” seçeneğini işaretliyoruz.
Şimdi en başta verdiğimiz betiği çalıştırdığımızda şu çıktıyı alıyoruz:
Bağlantı bilgileri kayıtlara eklendi! Abdurrahman Çelebi ------------------ İstanbul Öğretmen 0212 123 45 67 Çeliktepe
Son Yorumlar