![]()
From: Caglar Akyuz (caglar@bilkon-kontrol.com.tr)
Date: Mon 13 Aug 2007 - 20:18:33 EEST
Tolgahan wrote:
> 
>     import psycopg2
>     cxa =
>     psycopg2.connect(user='postgres',password='123456',database='enson')
>     xa = cxa.cursor()
>     f=open("kaynaklar/1.txt", "r")
>     a=unicode(f.read())
>     a=a.decode("utf-8")
>     xa.execute("INSERT INTO links (fulltxt) VALUES ('%s')" %(a))
>     cxa.commit()
>      
>      
>     bu kodu uyguladığımda aşağıdaki hatayı aldım:
>      
>     Traceback (most recent call last):
>       File "C:\web\apache\Python25\ekle.py", line 6, in <module>
>         a=unicode(f.read())
>     UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
>     306: ordinal not in range(128)
>      
Bu demektir ki varsayılan kodlama, ASCII, 0-127 arasındaki karakterleri
kabul eder, geri kalanlarda hata verir.(Python dökümantasyonundan)
>     benim yapmak istediğim txtlerin içerisinden gelen verileri utf-8
>     db'ye eklemek.
a=unicode(f.read(), 'dosyanın kodlama dili')
ki bu zaten önerilmişti.
>     (txt'lerin içindeki verilerin dili belli değil)
> 
Sizin istediğiniz şey bir karakteri alıp yazının diline göre uygun bir
utf-8 karaktere çevirmesi, ki bu bir sayıdan birden fazla sayıya eşleme
olur. Sanırım Python'da bunu direkt olarak yapan bir fonksiyon yoktur.
Caglar AKYUZ
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
![]()