[Çözüldü] Python unicode sorunu

Başlatan betül, 24 Ağustos 2011 - 02:53:30

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

betül

Merhaba,

Tkinter ile bir program yapmaya çalıştım. Programın amacı ingilizce.txt belgesine yazılan kelimleri alıyor ve bunun Türkçe karşılığını kullanıcıdan istiyor. Türkçe'leri de cevap.txt adlı bir belgede yer alıyor. Mesela, 'tree' kelimesinin karşılığı 'ağaç' olarak yazıldığında bu cevap.txt'de yer almasına ve doğru olmasına rağmen 'false' olarak karşılığını veriyor ve shell ekranında bana şu çıktıyı veriyor:


UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal


Bu sorunu halletmek için ne yapabilirim?

Düzeltme notu: İmlâ kurallarına özen gösterirseniz memnun oluruz.

if

#1
@betül, İngilizce biliyor musunuz? Hatayı araştırdım ama kod yazmadan anlamadığım için araştırma sonucu çıkan önerilerden sizin ne yapmanız gerektiğine dair hiç bir şey anlamadım. 'Unicode Warning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal' bu şekilde arama yaptım.

eMKey


.decode("utf-8")
kullanmayı deneyebilirsin.
Örnek:
a = self.textbox.get_text().decode("utf-8")
The day Microsoft make a product that doesn't suck is the day they start making vacuum cleaners.

sem

http://forum.ubuntu-tr.net/index.php?topic=6653.msg155963#msg155963

Burada kod Tkinter ile yazılmış ve ÇAL isminde Türkçe karakter içeren bit düğme var... Bir şey çıkartabilirsiniz belki diye gönderdim...

Kodun başına (2. satıra) UTF - 8 ile ilgili bir bildirim var, bunu yapıyor musunuz?

NOT: Çok alakalı mıdır bilemiyorum, şimdilik pek Python bilgim yok çünkü...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

eMKey

# -*- coding: utf-8 -*-
kodu ile kullandığın karakter tipini python'a tanıtıyorsun. O kod kullanılmazsa türkçe karakterlerde hata verir.
Dışarıdan bir dosyadan veri aldığında yukarıdaki kod kullanılsa bile Türkçe karakterler doğru çıkmıyor. Mesela biber kelimesini B\xc4\xb0BER şeklinde yazıyor. En azından adam asmaca oyunu yapmaya çalışırken bende öyle oldu. Sorunu decode("utf-8") ile çözdüm.
The day Microsoft make a product that doesn't suck is the day they start making vacuum cleaners.

betül

yanıtlarınız için teşekkür ederim arkadaşlar sorunum şekilde çözüldü :


import codecs

ingilizce=codecs.open("ingilizce.txt","rb",encoding="utf-8")
turkce=codecs.open("cevap.txt","rb",encoding="utf-8")

sozluk = dict(zip([unicode(i.strip()) for i in ingilizce.readlines()],[unicode(i.strip()) for i in turkce.readlines()]))
turkce.close()
ingilizce.close()



bir de önemli bir noktası var.dosyaları utf-8 olarak kaydetmemiz gerekiyor.

if

Geri dönüş yaptığınız için teşekkür ederim @betül. Konuyu kapatıyorum.