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

---------

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

From: Ismail ASCI <ismail.asci_at_gmail.com>
Date: Tue, 3 Feb 2009 17:29:35 +0200
Message-ID: <28814fb60902030729y336549ew4ce20570b229de5@mail.gmail.com>

Giris cikislarin tamaminin unicode olmasi sorunu cozer sanirim. Tkinter'i
pek bilmiyorum ancak input'lari unicode almanin bir yolu vardir sanirim.
Ayni sekilde mysql connection'ini da unicode olmali. show variables like
'%char%' sorgusuyla gorebilirsiniz bu degerleri...tabi bu sorguyu python
uzerinden yapmaniz lazim...

2009/2/3 Mucibirahman Ä°LBUÄžA <mucip.ilbuga_at_gmail.com>

> Selamlar,
> Şuna karar kıldım: Ben bu character coding olayını anlayamıyorum!
> Dediğiniz gibi cp1254 ile sorunsuz veritabanına yazdı. Ancak veritabanından
> okuyup Tkinter listbox'una eklerken bu defa sıkıntı çıkıyor! Yani bir türlü
> karakter kodlamalarını yapamadım gitti. Bu kaç defadır böyle oluyor! :(
>
> Yok mudur bunun mantığını tam olarak anlatan bir kaynak :(
>
> 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:)
>
>
>
> Ismail ASCI yazmış:
>
> Merhabalar,
> Mysql'e girmek istediginiz veriyi nasil aliyorsunuz?
> Muhtemelen girdiginiz veri unicode olmadigi icin aliyorsunuz bu hatayi.
> Eger veri unicode degilse ve boyle olmak zorundaysa unicode('string',
> encoding='input_encoding', errors='ignore') deneyebilirsiniz...
>
> input_encoding girilen verinin karakter kodlamasi, mesela windows turkce
> icin cp1254 olmali...
>
> 2009/2/3 Mucibirahman Ä°LBUÄžA <mucip.ilbuga_at_gmail.com>
>
>> Selamlar,
>> Olmadı.. :(
>> Gelen hata:
>>
>> return unicode(word,'utf-8')
>> UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-3:
>> invalid data
>>
>>
>>
>> Kolay gelsin,
>> Mucip:)
>>
>>
>>
>> Aydın ŞEN yazmış:
>>
>>
>> File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 146,
>>> in execute
>>> query = query.encode(charset)
>>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xfd in position 83:
>>> ordinal not in range(128)
>>>
>>> --
>>> Kolay gelsin,
>>> Mucip:)
>>>
>>> _______________________________________________
>>> Linux-programlama mailing list
>>> Linux-programlama_at_liste.linux.org.tr
>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>
>>
>> Öntanımlı olarak ascii karakter seti kullanıldığı için Türkçe karakterleri
>> işleyemiyor. Şöyle [1] bir fonksiyondan geçirirseniz düzelecektir.
>>
>> def getUnicode(self, word):
>> return unicode(word, 'utf-8')
>>
>> --
>> 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
>>
>>
> ------------------------------
>
> _______________________________________________
> 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
>
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Tue 03 Feb 2009 - 16:21:03 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.