2016-04-13 40 views
0

Django'da, MySQL'e karşı bir sorgu atmak için harici bir komut kullanıyorum. Utf-8 karakterli bir alanı kurtarıncaya kadar her şey harika oluyor (Cami türü ó n). Bu noktada artık sorgu kümesi üzerine dileyemem ve MySQLBir sorgudan gelen bir alan sonucunu kodlamak

'ascii' codec can't encode character u'\xf3' in position 34: ordinal not in range(128) 

Kodum sonraki biridir verir:

cursor = connection.cursor() 
query = "SELECT * FROM " + table_name + " ORDER BY " + "1" 
cursor.execute(query) 

rows = cursor.fetchall() 
for row in rows: 
    result = [] 
    for field in row: 
     print field 
     result += [str(field)] 

nasıl bu durumu önleyebilirsiniz? Teşekkür Mates ...

EDITED: Bir sonraki için orijinal alan dize senin piton komut

# -*- coding: utf-8 -*- 
+0

Bir sonraki çalışma için orijinal alan dizesinin aranması ve değiştirilmesi ... field = unicode (alan) .encode ("utf-8", "replace") –

+2

Bunu neden yapıyorsunuz? Neden Django modellerini kullanmıyorsun? –

+0

Hahahaha ... gerçekten uzun bir tarih ... Neredeyse çözmeyi denerken çıldırıyorum ... LOL –

cevap

1

deneyin yoluyla çalışır one works ... alan = unicode (alan) .encode ("utf-8", "replace")

+0

Cevabınız için teşekkürler. Bu bir Django Projesi. Yine de kullanabilir miyim? Her ne olursa olsun, görüş açımdan doğrudan benim görüşümde kullanabileceğim bir çözüm buldum. Güncellememi kontrol et. Teşekkürler dostum. –

0

Arama başında aşağıda satır ekleyerek ve değiştirme field = unicode(field).encode("utf-8", "replace")