[Linux-programlama] Re: Python ile MySQL'e yazarken karakter kodlama hatası?

---------

[Linux-programlama] Re: Python ile MySQL'e yazarken karakter kodlama hatası?

From: Mucibirahman İLBUĞA <mucip.ilbuga_at_gmail.com>
Date: Wed, 04 Feb 2009 15:01:27 +0200
Message-ID: <498991A7.3020701@gmail.com>

Selam,
Aslında sıkıntı okuduğum metin dosyanın ne kodda olduğunu anlayamamam!
Qmail ve Squirrelmail kullanıyorum. Adres defteri olarak metin dosya
kullandım önce. Sonra fontlarda sıkıntı olduğunu agörünce metin dosya
yerine MySQL'de tutmaya karar verdim. Ama kullanıcıların oluşturduğu
metinlerin ne formatında olduğunu çözemedim?
Metin dosyadaki kayıtları MySQL'e de aktarırken Türkçelerde sorun oldu
ama bir şekilde razı olduk :(

Ama anladığım kadarı ile veritabanını kurarken hangi karakter formatta
çalışmasını söylemek lazım. Daha sonra da bu vt'den okurken ve yazarken
aynı formata çevirmek gerekecek... Aslında zahmetli bir şey ama çare
yoksa katlanacağız!

Bu tür bir döküman kaynak gösterebilir misiniz? Veritabanı karakter
setleri ile çalışmak konusunda?

Kolay gelsin,
Mucip:)

ANIL KARADAĞ yazmış:
> Selamlar,
>
> 2009/2/3 Mucibirahman İLBUĞA <mucip.ilbuga_at_gmail.com
> <mailto:mucip.ilbuga_at_gmail.com>>
>
> Selamlar,
> Önce girilen her metine aşağıdaki kodu uygulayarak utf-8 yaptım
> (sanırım?);
> *def getUnicode(word):
> return unicode(word,'cp1254')*
>
>
> Bu kullanım word ifadesini utf-8 yapmaz. cp1254 windows1254 dur. Ve
> bunların encoding haritaları farklıdır.
>
> Encoding islemlerin dikkat etmeniz gereken bazı seyler vardır Bunlar,
> kod dosyasınızda eğer türkçe karakterli stringler kullanacaksanız
> dosyanın en basında
> *# -*- coding: utf-8 -*-* ifadesini yazmalısınız. Dosya yazıp
> okuyacaksanız sistem diliniz neyse ona gore islem yapılmalıdır.
>
> Veri tabanında data alıp islerken ve yine db ye data atarken veri
> tabanınızın charsetine, connection charsetine gore yapmalısınız.
>
> Bir dosyadan utf-8 data okuyup charset i utf-8 olan bir tablonuza
> datayi atmak istediginizde *data.encode("utf-8") *yapmalısınız.
>
>
>
> Daha sonra Listbox'a da yazarken;
>
>
>
>
> Kolay gelsin,
> Mucip:)
>
>
>
> Aydın ŞEN yazmış:
>>
>> Bu defa alınan hata:
>> L.insert(END, str(row[1]) + ' '*60 + "-" + str(row[0]))
>> UnicodeEncodeError: 'ascii' codec can't encode characters in
>> position 0-9: ordinal not in range(128)
>>
>> Kolay gelsin,
>> Mucip:)
>>
>>
>> bir önceki mailinizde cp1254 karakter seti kullandığınızı
>> belirtmişsiniz, aşağıdaki satırı şu [1] şekilde değiştirirseniz
>> düzelir diye düşünmekteyim.
>>
>> [1]
>> L.insert(END, str(row[1].encode("cp1254")) + ' '*60 + "-" +
>> str(row[0].encode("cp1254")))
>>
>>
>> --
>> Aydın ŞEN
>>
>> Ege Üniversitesi
>> Uluslararası Bilgisayar Enstitüsü
>> ------------------------------------------------------------------------
>> _______________________________________________ Linux-programlama
>> mailing list Linux-programlama_at_liste.linux.org.tr
>> <mailto:Linux-programlama_at_liste.linux.org.tr>
>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> <mailto:Linux-programlama_at_liste.linux.org.tr>
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>
>
> --
> Anıl KARADAĞ
> Cihan Bilişim A.Ş. - Yazılım Geliştirme Uzmanı
> GYTE- Bilgisayar Müh. Yüksek Lisans öğrencisi
> http://anilkaradag.info/blog
> ------------------------------------------------------------------------
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Wed 04 Feb 2009 - 13:50:58 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.