Seite 1 von 1

python & UTF-8

Verfasst: Sonntag 14. Mai 2006, 15:00
von tuner
hy,

hab ein Problem mit meinen sql-anfragen, muss die ganze Zeit zw. unicode und iso-... hin und her schalten.

ich mache folgenes:
1. ich lese die geasmmte datenbank aus

Code: Alles auswählen

query="SELECT * FROM Film order by title"
funktioniert wunderbar, deutsche Umlaute werden korrekt ausgegeben.
2. ich selektiere einen eintrag aus der Datenbank, stelle eine erneute anfrage.
ok, fehlermeldung also codiere ich mit UTF-8

Code: Alles auswählen

      query="SELECT * FROM Film where title='"+x[0]+"'"
      query=query+" and subtitle='"+x[1]+"'"
      query=query.encode("utf-8")
      query=winObj.db.getQuery(query)
3. dann will ich das ganze ausgeben, sieht so aus:

Code: Alles auswählen

(('0096A', 'Das t\xc3\xb6dliche Wespennest', None, None, None, None),)
also müsste ich wieder encode("iso...")

die Frage:
gibt es eine Möglichkeit in Python UTF-8 als Standard einzusetzen?

gruss, toni.

Verfasst: Sonntag 14. Mai 2006, 17:44
von murph
d kannst schriftnorme als standart setzen.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
ist zum beispiel ein typischer anfang, anstelle von der iso nennst du dann halt utf...

Verfasst: Sonntag 14. Mai 2006, 20:43
von tuner
hmm,

bringt aber nichts. soweit ich das verstanden habe bedeutet das nur, dass das python-file, das ich geschrieben habe in unicode ist.

ich würde gerne aber die strings, etc. immer in unicode bearbeiten.

gruss.

Re: python & UTF-8

Verfasst: Sonntag 14. Mai 2006, 22:02
von ryu
tuner hat geschrieben:gibt es eine Möglichkeit in Python UTF-8 als Standard einzusetzen?
Soviel ich weiß nicht... aber du könntest deine Strings intern mit Unicode codieren, das ganze sieht dann so aus:

Code: Alles auswählen

u'Ich bin ein Unicode String'

Allerdings ist es vermutlich auch noch nicht der Weißheit letzter Schluss.

Verfasst: Sonntag 14. Mai 2006, 23:25
von tuner
thx,

wär halt 'ne schöne Lösung, alles in Unicode...

gruss.

Verfasst: Montag 15. Mai 2006, 06:50
von BlackJack
tuner hat geschrieben: wär halt 'ne schöne Lösung, alles in Unicode...
Alles in Unicode geht halt nicht. Sowie die Texte irgendwie von/oder nach "aussen" gehen muss man sie halt irgendwie kodieren.

Macht Deine Datenbank bzw. das entsprechende Pythonmodul vielleicht automatisch "das Richtige" wenn Du die Anfrage als Unicode-Objekt übergibst?