UTF-8 / Unicode / MySQL / Bottle / Python / Apache öäüÖÄÜ

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
MrNiceTry
User
Beiträge: 80
Registriert: Samstag 7. November 2009, 10:32

Ja, richtig.
Du hast richtig vermutet.
UTF-8 Probleme!

Ich habe wirklich schon alles probiert was geht, was geschrieben worden ist, was sich Google zu UTF und Python rausquetscht.

Webseitig bekommt man nur das schwarze Stopschild mit dem Fragezeichen zu sehen.

In MySQL sind die Umlaute da.
In MySQL ist an allen möglichen Stellen, die ich aufspüren konnte "utf8_unicode_ci" eingetragen.

Mein Python Code "todo.py", der mit Bottle zusammen spielt hat in der ersetn Zeile "# -*- coding: utf-8 -*-".

Genau so das Template!
DefNull hat geantwortet, das es wohl nicht an Bottle liegen wird.

Auf der Webseite kommt dann nur noch "schwarz" an.
Im Seitenquelltext sind bereits keine Umlaute zu sehen.


Was mache ich falsch?
Wo muß ich noch nachsehen?
Gibt es einen anderen Lösungsweg als UTF-8 der sinnvoll ist?


MrNiceTry
BlackJack

@MrNiceTry: Ich denke Du musst an jeder Stelle "auf dem Weg" schauen, ob die die Daten noch korrekt sind, und so die Stelle finden, wo das halt nicht mehr der Fall ist.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

MrNiceTry hat geschrieben:Was mache ich falsch?
Keine Ahnung, da gibts zu viele Unbekannte.
Wo muß ich noch nachsehen?
Du musst einfach systematisch nach dem Fehler suchen und Fehlerquellen aussortieren. Zum Beispiel würde ich als ersten gucken, was mit Umlauten passiert die du aus dem Script selbst an das Template übergibst. Wenn die Ankommen musst du dir nochmal genau den Mysql-Teil angucken, wenn nicht, dann den Rest. Und so stückweise zum Problem vorarbeiten.

Gibt es einen anderen Lösungsweg als UTF-8 der sinnvoll ist?[/quote]Nein, evtl. UTF-16 oder UTF-32. ;)[/quote]
Benutzeravatar
Käptn Haddock
User
Beiträge: 169
Registriert: Freitag 24. März 2006, 14:27

Ich tippe auf ein falsches client_encoding beim Zugriff auf die Datenbank. Man sollte das auch bei MySQL beim Aufbau der Verbindung setzen können...

CU Uwe
---------------------------------
have a lot of fun!
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Was passiert denn mit umlauten in Templates oder wenn du einfach einen Unicode String mit Umlauten zurück gibst? Wenn die richtig dargestellt werden, liegt es ja 100%ig an mysql.
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
noisefloor
User
Beiträge: 4185
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

hast du das Problem mit Daten, die du aus Python _in_ die MySQL DB schreibst, oder mit Daten, die du händisch in DB schreibst und mit Python raus holst?

Ich hatte das Problem mal, weil alles auf UTF-8 eingesteltl war, nur meine Client-Connection -> MySQL auf Latin-1 stand. Das siehst du aber nur in der Config-Datei von MySQL.

Gruß, noisefloor
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Das kann ich bestätigen. Bei MySQL-Verbindungen sollte das Encoding immer explizit mit angegeben werden. Sonst passieren hässliche Dinge.

Seinerzeit half es, nach Erstellen der Verbindung einen Cursor zu erstellen und den Befehl "SET NAMES 'UTF-8'" abzusetzen.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

In den neueren Versionen von MySQLdb kann man beim connect das encoding angeben.
EDIT: wäre mal Zeit einen Eintrag in der http://wiki.python-forum.de/FAQ zu erstellen!

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Hast du vielleicht IE und bottle 0.6.x?
Dann musst du den content-type (mit bottle) manuell auf utf-8 setzen.
MrNiceTry
User
Beiträge: 80
Registriert: Samstag 7. November 2009, 10:32

ms4py hat geschrieben:Hast du vielleicht IE und bottle 0.6.x?
Dann musst du den content-type (mit bottle) manuell auf utf-8 setzen.
nö,

kein IE !
Bottle 0.7er !
MrNiceTry
User
Beiträge: 80
Registriert: Samstag 7. November 2009, 10:32

Habe diese Nacht bei GitHub die neueste Version 0.8.0 von Bottle entdeckt.

Copy zum Server ... alle Umlautprobleme weg ! :idea: :lol:
Antworten