Habe auf Hosteurope nun einen MySQL 4.1.8a-Debian_5.dotdeb.0-log Server... Jetzt sind allerdings meine Umlaute defekt, z.B.: http://jensdiemer.de/?PyLucid
Alle Umlaute/Sinderzeichen sind ersetzt durch Fragezeichen
Ich habe mit phpMyAdmin alles auf DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci umgestellt. In phpMyAdmin sind die Umlaute auch richtig...
Es gibt wohl beim mySQLdb Modul beim connect() eine Angabe unicode bzw. use_unicode. Aber leider habe ich die Uralte Version von MySQLdb ( v0.9.1 )
Hier mal eine Ausgabe:
das ü
D\xc3\xbcsseldorf - Mein lokaler Server (Umlaute richtig)
D\xfcsseldorf - Der Hosteurope Server mit falschen Umlauten
ein ö
K\xc3\xb6rper - mein Server
K\xf6rper - Hosteurope
Weiß jemand was da schief läuft???
MySQL 4.1.8 und UTF8...
Hallo jens,
hatte das selbe Problem, obwohl ich im header und meta tag UTF-8 als Zeichensatz hatte.
Bei mir hat's geholfen einfach die Daten zu löschen, und neu in die Tabelle zu schreiben bzw. die Tabelle neu anlegen.
Anscheinden wandelt MySQL alte Datensätze nicht einfach um?
Ist dein Python Script auch UTF-8 codiert und hast Du es oben im Script auch angegeben?
MfG
Andreas
hatte das selbe Problem, obwohl ich im header und meta tag UTF-8 als Zeichensatz hatte.
Bei mir hat's geholfen einfach die Daten zu löschen, und neu in die Tabelle zu schreiben bzw. die Tabelle neu anlegen.
Anscheinden wandelt MySQL alte Datensätze nicht einfach um?
Ist dein Python Script auch UTF-8 codiert und hast Du es oben im Script auch angegeben?
MfG
Andreas
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Verdammt... Ich habe nun einen UFT8 SQL-Dump... in Scite sind alle Umlaute richtig. Alle Felder und die Tabelle an sich sind in CHARSET=utf8 COLLATE=utf8_unicode_ci
Auch wenn ich diesen Dump einspiele sind die Umlaute nicht richtig. In phpMyAdmin aber schon.
Wenn ich nun per lucidCMS (also per PHP) Daten einfüge, werden sie richtig Dargestellt, aber in phpMyAdmin wird aus äöüÄÖÜß -> äöüÄÖÜß
Irgendwie verstehe ich das ganze nicht wirklich
Auch wenn ich diesen Dump einspiele sind die Umlaute nicht richtig. In phpMyAdmin aber schon.
Wenn ich nun per lucidCMS (also per PHP) Daten einfüge, werden sie richtig Dargestellt, aber in phpMyAdmin wird aus äöüÄÖÜß -> äöüÄÖÜß
Irgendwie verstehe ich das ganze nicht wirklich
Das auf dem Server scheint 'latin-1' bzw. 'iso-8859-1' zu sein. Wie ist es denn in die Datenbank hereingekommen? Waren die Daten schon vor der Umstellung drin?jens hat geschrieben:Hier mal eine Ausgabe:
das ü
D\xc3\xbcsseldorf - Mein lokaler Server (Umlaute richtig)
D\xfcsseldorf - Der Hosteurope Server mit falschen Umlauten
ein ö
K\xc3\xb6rper - mein Server
K\xf6rper - Hosteurope
Weiß jemand was da schief läuft???
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Jetzt hab ich mal auf meinem lokalen Test-Server ebenfalls eine neue Version von SQL (v4.1.10a-Debian_2ubuntu0.1-log) draufgepackt.
Und auch da ist es so, das ich alles auf UTF8 umgestellt hab. Alle Daten nochmal per SQL-Dump eingespielt... In phpMyAdmin ist wieder alles OK, aber per mySQLdb ist wieder Asche mit den Sonderzeichen
Komischerweise funktioniert mein Workaround nicht. Denn wenn ich die Daten auf Binary stelle, erhalte ich keinen String (wie bei Hosteurpe) mehr zurück sondern ein array.array-Objekt Ich denke es liegt an der neueren Version vom mySQLdb Modul...
Aber irgendwie muß das doch auch richtig gehen Ich möchte eigentlich schon mit UTF8 die Seiten speichern und zum Browser ausgeben... Ich habe keine Lust alle Sonderzeichen zu escapen...
Und auch da ist es so, das ich alles auf UTF8 umgestellt hab. Alle Daten nochmal per SQL-Dump eingespielt... In phpMyAdmin ist wieder alles OK, aber per mySQLdb ist wieder Asche mit den Sonderzeichen
Komischerweise funktioniert mein Workaround nicht. Denn wenn ich die Daten auf Binary stelle, erhalte ich keinen String (wie bei Hosteurpe) mehr zurück sondern ein array.array-Objekt Ich denke es liegt an der neueren Version vom mySQLdb Modul...
Aber irgendwie muß das doch auch richtig gehen Ich möchte eigentlich schon mit UTF8 die Seiten speichern und zum Browser ausgeben... Ich habe keine Lust alle Sonderzeichen zu escapen...
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ich bin etwas verwirrt:BlackJack hat geschrieben:Das auf dem Server scheint 'latin-1' bzw. 'iso-8859-1' zu sein. Wie ist es denn in die Datenbank hereingekommen? Waren die Daten schon vor der Umstellung drin?jens hat geschrieben:D\xc3\xbcsseldorf - Mein lokaler Server (Umlaute richtig)
D\xfcsseldorf - Der Hosteurope Server mit falschen Umlauten
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: UTF-8 -*-
TestString = "ä ö ü ß Ä Ö Ü"
print TestString
print TestString.encode("String_Escape")
Code: Alles auswählen
ä ö ü ß Ä Ö Ü
\xe4 \xf6 \xfc \xdf \xc4 \xd6 \xdc
Demnach liefert der Server mit doch wirklich UFT8???
EDIT1:
AHA! Wenn ich die Seite mit Python's urllib2 abhole, sind die Umlaute drin! Setzt Der Browser also die Umlaute falsch um?
Ich habe allerdings
Code: Alles auswählen
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
In Firefox sehe ich in den Seiteninformationen allerdings das die Kodierung UTF8 ist
EDIT2:
Also jetzt bin ich ja total verwirrt... Im IE werden die Umlaute auch falsch angezeigt. Wenn ich allerding mit den Quellentext der HTML-Seite anschaue, sind alle Umlaute richtig drin Wie kann das denn sein?
Zum test hab ich den angezeigten Quellentext mal per Copy&Paste in einer lokalen HTML-Datei gespeichert (mit SciTE in UTF8). Die Datei zeigt mit Firefox dann auch richtig an
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
So! Jetzt habe ich auf meine Homepage www.jensdiemer.de auch wieder alles umgestellt auf UTF8...
Kann vielleicht mal einer von euch dorch drauf schauen, ob die Umlaute richtig sind???
Per urllib2 sind sie defekt. Im IE auch, aber nicht im IE-Quellentext...
Kann vielleicht mal einer von euch dorch drauf schauen, ob die Umlaute richtig sind???
Per urllib2 sind sie defekt. Im IE auch, aber nicht im IE-Quellentext...
-
- Gründer
- Beiträge: 410
- Registriert: Dienstag 30. Juli 2002, 18:03
- Wohnort: Oestrich-Winkel
- Kontaktdaten:
Also ich bekomme im Firefox ein ? für jeden Umlaut. Wenn ich aber unter "Ansicht->Zeichencodierung" auf Westlich Iso 8859-1 stelle sehe ich alle umalute richtig.
irc: #python.de @ irc.freenode.net | [url=http://pythonwiki.pocoo.org]python-wiki[/url] | [url=http://www.pythonwiki.de/PythonDeForum/Faq]python-forum FAQ[/url]
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ja, ich glaube meine vermutung das ü ein \xfc in UTF8 ist, war falsch.... In SciTE habe ich da oft Probleme mit.
Ich denke ü ist \xc3\xbc in UTF8... Scheint mir auch richtiger zu sein, da es sich aus "zwei Zeichen" zusammen setzt...
Dann verstehe ich allerdings nicht, wie ich wirklich UTF8 in die SQL-Datenbank bekomme...
Ich denke ü ist \xc3\xbc in UTF8... Scheint mir auch richtiger zu sein, da es sich aus "zwei Zeichen" zusammen setzt...
Dann verstehe ich allerdings nicht, wie ich wirklich UTF8 in die SQL-Datenbank bekomme...
Hi Jens,
bei mir ist es gleich wie bei Piddon. Firefox startet Deine Seite mit UTF8 Zeichencodierung, sprich ? für Umlaute. Schalte ich die Zeichencodierung auf Westl. ISO-8859-1, sind alle Umlaute richtig dargestellt.
Tabellar
bei mir ist es gleich wie bei Piddon. Firefox startet Deine Seite mit UTF8 Zeichencodierung, sprich ? für Umlaute. Schalte ich die Zeichencodierung auf Westl. ISO-8859-1, sind alle Umlaute richtig dargestellt.
Tabellar
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Danke für eure Tests...
Hab mittlerweile herrausgefunden, das die Editierfunktion von phpMyAdmin mist baut. Wenn ich damit ein Feld editiere, benutzt er wohl nicht UTF8 sondern latin-1.
Mit meiner eigenen Editierfunktion in PyLucid werden die Umlaute allerdings richtig in UTF-8 in die Datenbank gespeichert...
Auf meiner Startseite habe ich nun einen Umlaut test mit PyLucid eingefügt, diese Umlaute sind dann auch richtig...
Also kann ich keine UFT8-Daten per SQL-Dump und phpMyAdmin in die Datenbank einfügen, ohne das phpMyAdmin mist baut
Jetzt kann ich natürlich mit PyLucid hingehen und alle meine Umlaute korrigieren, aber das macht nicht wirklich Spaß
Hab mittlerweile herrausgefunden, das die Editierfunktion von phpMyAdmin mist baut. Wenn ich damit ein Feld editiere, benutzt er wohl nicht UTF8 sondern latin-1.
Mit meiner eigenen Editierfunktion in PyLucid werden die Umlaute allerdings richtig in UTF-8 in die Datenbank gespeichert...
Auf meiner Startseite habe ich nun einen Umlaut test mit PyLucid eingefügt, diese Umlaute sind dann auch richtig...
Also kann ich keine UFT8-Daten per SQL-Dump und phpMyAdmin in die Datenbank einfügen, ohne das phpMyAdmin mist baut
Jetzt kann ich natürlich mit PyLucid hingehen und alle meine Umlaute korrigieren, aber das macht nicht wirklich Spaß
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ich bekomme es mit dem SQL Dump hin oder her, einfach nicht hin
Also schreibe ich mir jetzt einen "converter" in Python... Aber so leicht erscheint mir das auch nicht:
http://www.python-forum.de/viewtopic.php?p=20635#20635
Also schreibe ich mir jetzt einen "converter" in Python... Aber so leicht erscheint mir das auch nicht:
http://www.python-forum.de/viewtopic.php?p=20635#20635