python & UTF-8

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
tuner
User
Beiträge: 32
Registriert: Sonntag 23. April 2006, 22:17

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.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

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...
tuner
User
Beiträge: 32
Registriert: Sonntag 23. April 2006, 22:17

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.
ryu
User
Beiträge: 41
Registriert: Dienstag 7. Februar 2006, 19:34

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.
tuner
User
Beiträge: 32
Registriert: Sonntag 23. April 2006, 22:17

thx,

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

gruss.
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?
Antworten