Umlaute aus Mysql Tabelle ... encoding

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Stolzi
User
Beiträge: 155
Registriert: Mittwoch 18. August 2004, 15:44

Hallo,
habe hier zwar einiges gefunden und auch einige Links, aber da nichts dabei war was genau meinem Fall entsprach schaffte ich es nicht das umzusetzen, da ich das ganze mit den charsets noch nicht so wirklich durchblicke.

Ich habe folgendes Problem. Ich habe ein Programm in Python geschrieben, was Daten aus von einem Server abruft ausliest. Diese kommen in iso-8859-1 daher. Nun habe ich auf einem meiner Suse Rechner auch iso-8859-1 am laufen als systemweites Encoding. Dort klappt alles problemlos.
Aber am Rechner an dem UTF8 systemweit eingestellt ist bereitet das natürlich Probleme.

Wie also kann ich meinem Python Skript sagen, dass es wenn im System nicht iso-8859-1 eingestellt ist es die Daten die reinkommen, bzw rauskommen dorthin konvertiert?

Danke
Stolzi
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

Hallo,

ich weiß nich, ob es dir was bringt, aber evtl kannst du ja eine Exception abfangen und das Ganze dann mit encode() und decode() behandeln.

LG
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

hi du,

angeblich gehts mit encode & decode
anleitung hier http://docs.python.org/lib/string-methods.html
python unicode anleitung hier http://www.reportlab.com/i18n/python_un ... orial.html

ich hoffe ich konnte dir helfen, ich hab das zwar noch nie selbst gebraucht aber ich bilde mir ein genau dieses vorgehen in pylons gesehen zu haben, und ich glaub die jungs wissen was sie tun :) (ganz leise: "hoff ich")

lgherby
Stolzi
User
Beiträge: 155
Registriert: Mittwoch 18. August 2004, 15:44

Danke, das hat geholfen.
Wenn ich auf die Daten nach dem Auslesen Data=Data.decode('latin1') anwende, dann passt alles. Es wird richtig angezeigt, egal ob mein Computer auf UTF8, oder latin1 läuft. Auch wenn ich die Daten dann wieder in die Datenbank schreib die mit latin1 läuft passt alles.
Nur warum verstehe ich noch immer nicht. Also, wenn jemand Lust hat mir den Hintergrund zu erklären, dann würde ich mich freuen. Mit den geposteten Links habe ichs nicht geschafft das zu verstehen.

Danke
Stolzi
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Stolzi hat geschrieben:Nur warum verstehe ich noch immer nicht. Also, wenn jemand Lust hat mir den Hintergrund zu erklären, dann würde ich mich freuen. Mit den geposteten Links habe ichs nicht geschafft das zu verstehen.
Du weißt schon was Encodings sind? Und was Unicode ist?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten