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

---------

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

From: ANIL KARADAĞ <anil.karadag_at_gmail.com>
Date: Wed, 4 Feb 2009 15:44:45 +0200
Message-ID: <f89a5eb80902040544ka584f26m855ea099c199f81d@mail.gmail.com>

istedigin dokumantasyon konusunda kararsız kaldım. Tam olarak ne aradıgını
anlayamadım isin gercegi.

Burada senin icin onemli olan su, verinin encodingi nedir? Veri tabanında bu
sorunun cevabını biliyorsan python da aynı encoding ile datanı encode
etmelisin.

[1] http://www.reportlab.com/i18n/python_unicode_tutorial.html
[2] http://evanjones.ca/python-utf8.html

2009/2/4 Mucibirahman İLBUĞA <mucip.ilbuga_at_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>
>
>> 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 listLinux-programlama@liste.linux.org.trhttp://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
>>
>>
>
>
> --
> 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 listLinux-programlama@liste.linux.org.trhttp://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
>
>

-- 
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
Received on Wed 04 Feb 2009 - 14:36:03 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.