ana sayfa > Python, Teknik > Python: Windows’ta Türkçe Karakter Sorunu

Python: Windows’ta Türkçe Karakter Sorunu

Salı, 13 Nis 2010

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:

Ba­lant² 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 1254

2. 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

Python, Teknik , , ,

  1. Kadir07can
    Pazar, 02 May 2010 zamanında 08:23 | #1

    Istihza abi random modulunu anlatabilme sansin var mi cok acil lazim oldu

  2. ismail
    Salı, 28 Haz 2011 zamanında 20:44 | #2

    Fırat abi yukarıda ilk yazdığın şeyi nasıl yapacağız?.yani chcp 1254 ü?.

  3. Salı, 28 Haz 2011 zamanında 21:48 | #3

    Başlat > Çalıştır yolunu takip et. Açılan küçük pencereye cmd yazıp ENTER tuşuna bas. Siyah MS-DOS ekranı açılacak. İşte orada chcp 1254 yazıp ENTER’e basacaksın.

  4. ahmet
    Perşembe, 28 Tem 2011 zamanında 11:14 | #4

    bişey soracam python yüklemeyi düşünüyorum. Fakat python programı paralı mı?? Teşekkürler

  5. Perşembe, 28 Tem 2011 zamanında 12:26 | #5

    Hayır. Paralı değil.

  6. ahmet
    Perşembe, 28 Tem 2011 zamanında 12:49 | #6

    teşekkürler…

  7. ahmet
    Perşembe, 28 Tem 2011 zamanında 20:12 | #7

    affedersiniz ama 2 sorum daha olacak
    1. Pythonda ben bir program yaptım diyelim. Ben bu programı python yüklü olmayan bir bilgisayarda çalıştırabilir miyim?
    2. PYGTK nın çalışması için yüklenecek şeyler ücretli mi?
    Teşekkürler…

  8. Perşembe, 28 Tem 2011 zamanında 21:07 | #8

    Evet, py2exe adlı program yardımıyla, kendi yazdığınız programları Python kurulu olmayan bilgisayarlarda çalıştırabilirsiniz.

    PyGTK ve bu kütüphanenin çalışması için kurulması gereken öteki kütüphaneler ücretsizdir.

    Bu arada, bu tür sorularınız için http://www.istihza.com/forum adresindeki forumumuzu kullanırsanız daha kolay yardım alırsınız.

  9. can
    Pazar, 16 Eki 2011 zamanında 15:24 | #9

    chcp 1254 girdiğimde “‘chcp’ iç ya da dış komut, çalıştırılabilir
    program ya da toplu iş dosyası olarak tanımlanmıyor.” hatası veriyor. Acaba ner yanlışım var?

  10. Aygün
    Çarşamba, 01 Şub 2012 zamanında 22:04 | #10

    Bendede can arkadaşın dediği gibi chcp 1254 komutunu girdiğimde “‘chcp’ iç ya da dış komut, çalıştırılabilir program ya da toplu iş dosyası olarak tanımlanmıyor.” diye hata veriyor.

    YARDIM…….

  11. alper
    Salı, 27 Mar 2012 zamanında 11:51 | #11

    mac os x (10.4), python 2.7.2
    çözemedim türkçe karakter sorununu. dışlamayın os x’i :)

  12. Salı, 27 Mar 2012 zamanında 13:23 | #12

    Özellikle dışlamıyorum. :) Elimde OS X olmadığı için böyle oluyor…

  1. şimdilik geri bağlantı yok