Hallo,
ich frage mittels Dialog-Fenster vom Benutzer verschiedene Zeichenketten ab. Diese Zeichenketten koennen unter Umstaenden Umlaute enthalten, aus welchem Grund ich diese Strings nach Eingabe Kodiere.
Folgendermaßen:
variable = variable.encode("utf-8")
Nun ist mein Problem, dass z.B. der String 'Krüger' in der Where-Klausel der Datenbank-Abfrage kein Ergebnis liefert, obwohl ein 'Krüger' in der Datenbank zu finden ist.
Ich hoffe mir kann jemand helfen, komme im Moment leider nicht weiter.
vielen Dank,
Patrick
Strings mit Umlauten in DB abfragen
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Patrick,
erstmal solltest Du schauen, was auf dem System überhaupt für ein Zeichensatz eingestellt ist:
bei den besseren Datenbanken kannst Du den verwendeten Zeichensatz einstellen, der muss dann auch auf utf-8 stehen wenn Du die Daten als utf-8 dorthin ausgeben willst.
Gruß
Dookie
erstmal solltest Du schauen, was auf dem System überhaupt für ein Zeichensatz eingestellt ist:
bei den besseren Datenbanken kannst Du den verwendeten Zeichensatz einstellen, der muss dann auch auf utf-8 stehen wenn Du die Daten als utf-8 dorthin ausgeben willst.
Code: Alles auswählen
>>> import sys
>>> fsencoding = sys.getfilesystemencoding()
>>> text = "Krüger"
>>> print repr(unicode(text, fsencoding).encode("utf-8"))
'Kr\xc3\xbcger'
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Okay, danke erstmal.
Hab gestern noch 1-2 Stunden nach dem Zeichensatz utf-8 fuer MySQL gesucht, aber noch nichts gefunden.
Hat den nicht jemand selbst in seinem System? Bei mir ist er naemlich nicht enthalten. (unter character_sets)
Sollte, wenn dann, im Verzeichnis mysql/share/charsets liegen.
vielen Dank!
Hab gestern noch 1-2 Stunden nach dem Zeichensatz utf-8 fuer MySQL gesucht, aber noch nichts gefunden.
Hat den nicht jemand selbst in seinem System? Bei mir ist er naemlich nicht enthalten. (unter character_sets)
Sollte, wenn dann, im Verzeichnis mysql/share/charsets liegen.
vielen Dank!
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Patric,
hab mal etwas rumgegoogelt, wie es ausschaut unterstützt MySQL utf-8 nur schlecht. Die utf-8 Unterstützung muss auch direkt in MySQL eincompiliert sein. Mit nachträglich installieren ist da nichts.
Sorry daß ich dir da nicht weiterhelfen kann.
Gruß
Dookie
hab mal etwas rumgegoogelt, wie es ausschaut unterstützt MySQL utf-8 nur schlecht. Die utf-8 Unterstützung muss auch direkt in MySQL eincompiliert sein. Mit nachträglich installieren ist da nichts.
Sorry daß ich dir da nicht weiterhelfen kann.
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Naja, das ist ne Windows-MySQL-Version.
Im Grunde brauche ich nur die 2 utf-8 Dateien im mysql/share/charsets Verzeichnis, dann kann ich den Zeichensatz in der Konfiguration angeben.
Im Grunde brauche ich nur die 2 utf-8 Dateien im mysql/share/charsets Verzeichnis, dann kann ich den Zeichensatz in der Konfiguration angeben.
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
nö geht nicht, RTFM: http://dev.mysql.com/doc/mysql/de/Probl ... _sets.html
Gruß
Dookie
Der Zeichensatz ist ein Multi-Byte-Zeichensatz, der nicht dynamisch geladen werden kann. Wenn das der Fall ist, müssen Sie das Programm mit Unterstützung für diesen Zeichensatz neu kompilieren.
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Mag ja sein, dass ich neu kompilieren muss.
Brauche trotzdem erstmal die Datei.
Anhand deines 'read the fucking manual' moechte ich behaupten, dass ich dir auf den Geist gehe.
Dann antworte mir halt nicht, wenn's dir zuviel ist, aber nicht in so einem Ton mit mir, bitte.
Betreibe selber ein Forum im Internet und habe lange genug Support fuer einen der groessten deutschen und kostenlosen Webspace-Provider betrieben, fuer lau. Glaube bitte nicht, ich bin einer derer, die andere fuer sich arbeiten lassen.
Danke..
Brauche trotzdem erstmal die Datei.
Anhand deines 'read the fucking manual' moechte ich behaupten, dass ich dir auf den Geist gehe.
Dann antworte mir halt nicht, wenn's dir zuviel ist, aber nicht in so einem Ton mit mir, bitte.
Betreibe selber ein Forum im Internet und habe lange genug Support fuer einen der groessten deutschen und kostenlosen Webspace-Provider betrieben, fuer lau. Glaube bitte nicht, ich bin einer derer, die andere fuer sich arbeiten lassen.
Danke..
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hat nichts mit auf den Geist gehen zu tun, ich hab nur komischerweise die Antwort auf Deine Frage in der offiziellen Dokumentation zu MySQL gefunden. Wie da steht können Multybyte Zeichensätze wie utf-8 eben nicht dynamisch geladen werden sondern muß eincompiliert sein, darum wirst auch kein entspechendes character-set finden.
Ganz egal ob Windows- oder Linux- oder sonstige Version. Im übrigen kannst ja gerne ein MySQL-Forum für Deine Frage aufsuchen, dort bist damit eh besser aufgehoben.
Gruß
Dookie
Ganz egal ob Windows- oder Linux- oder sonstige Version. Im übrigen kannst ja gerne ein MySQL-Forum für Deine Frage aufsuchen, dort bist damit eh besser aufgehoben.
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]