Page 1 of 1

(gelöst) Umlaute bei export der DB falsch dargestellt

Posted: Fri Jan 11, 2008 12:39 pm
by d4net
Ich brauche mal etwas Hilfe !!!!

Ich habe bereits einen guten Teil meiner Website jetzt mit CMS Made Simple 1.1.3.1 von einer normalen HTML Version auf diese CMS Version umgestellt. Zur Zeit arbeite ich daran offline mit einer Xampp Version und einem Apache Server. Die Anpassung, das Design und die Installation haben auch hervorragend funktioniert.
Jetzt wollte ich meine Daten auf einen anderen Computer übertragen und habe dabei die Datenbank exportiert. Leider werden mir jetzt alle Umlaute im Content falsch dargestellt. Da ich nicht 300 Seiten manuell durcharbeiten möchte um alle Fehler zu korrigieren und dann beim nächsten Datentransfer das Problem wieder auftritt bräuchte ich ein bisschen Hilfe.

Ich habe auch schon einige Anregungen aus dem Forum ausprobiert: umstellen des encoding Schlüssels, aber das hat nichts geändert.

Re: Umlaute bei export der DB falsch dargestellt

Posted: Fri Jan 11, 2008 1:10 pm
by cyberman
Hmm, ein Export XAMPP > XAMPP sollte eigentlich keine Probleme verursachen.

Sind die XAMPP-Versionen und deren Einstellungen identisch? Hast du die Einstellungen in der config.php verglichen?

Evtl. kann dir auch MySQLdumper (mysqldumper.de) dabei helfen. Wenn ich mich recht entsinne, kann der diese Encoding-Geschichten handeln.

Re: Umlaute bei export der DB falsch dargestellt

Posted: Sat Jan 12, 2008 8:49 am
by d4net
Also das Problem taucht auch direkt in der installierten DB auf, d.h. auf dem Computer an dem ich die Seiten erstellt habe. Gehe ich auf die Datenbank steht da zB:

Code: Select all

Schals, Tücher und Bandanas Knoten Möglichke...
Solange ich nichts  direkt in der DB ändere werden meine Seiten korrekt dargestellt, ändere ich aber in DB was, wird mir der geänderte Content mit falschen Umlauten dargestellt.

Meine Version von XAMPP Version 1.4.11 und [PHP: 4.3.10]

Dein Tipp hat mir also nicht geholfen.

Re: Umlaute bei export der DB falsch dargestellt

Posted: Sat Jan 12, 2008 2:50 pm
by tobik
Wenn die Umlaute in der DB falsch abgelegt werden, dann deutet dies auf unterschiedliches Encoding von DB und CMSMS hin.

Beispiel:

CMSMS schreibt seine Daten Latin1 encodiert in die DB. MYSQL ist aber der Meinung, es wären UTF8 encodierte Daten. Beim Auslesen der Daten aus MYSQL durch CMSMS läuft das Ganze rückwärts und korrigiert sich dadurch selbst. Die Umlaute werden in CMSMS wieder korrekt angezeigt. Soweit so gut, obwohl eigentlich schon schlecht ;)

Machst Du jetzt aber einen Export der Daten, dann stehen die Umlaute verkrüppelt in der SQL-Export-Datei. Was Dein zweites System dann daraus macht, hängt wiederum von den Einstellungen von MYSQL und CMSMS ab. Ein interessanter Artikel dazu findet sich im MySqlDumper-Forum.


Lösung:

Wenn die DB auf UTF8 eingestellt ist, dann müssen in CMSMS - include.php in folgender Zeile die ersten beiden Zeichen (//) entfernt werden:

Code: Select all

//    $cmsdb->Execute('set names utf8'); // database connection with utf-8 

Hast Du in der Vergangenheit bereits versehentlich eine uft8 Datenbank mit latin1 Daten gefüllt, dann werden nach dieser Änderung in CMSMS erst mal falsche Umlaute angezeigt. Die Daten müssen also noch in der DB in korrigiert, d.h. für unser Beispiel, von latin1 in utf8 umkodiert werden. Wieder ist es MySQLDumper der hier aus der Patsche helfen kann. In diesem Artikel wird das benötigte Korrekturprogramm vorgestellt.

Gruß,
Tobias

Re: Umlaute bei export der DB falsch dargestellt

Posted: Sat Jan 12, 2008 7:20 pm
by d4net
Hallo Tobias,

erst mal vielen Dank für Eure Hilfe. Deinen Link werde ich gleich mal ausprobieren.

Doch ich habe nicht so ganz verstanden wie das Problem entstanden ist, meine DB ist auf Latin1 und CMSMS ist auf Deutsch eingestellt.  Habe ich irgendwie vergessen was zu ändern? Die config Datei oder so? ??? ??? ???

Ich meld mich auf jedenfall, wenn ich mein Problem gelöst habe.

Gruß
Jo

Re: Umlaute bei export der DB falsch dargestellt

Posted: Sat Jan 12, 2008 8:26 pm
by tobik
Hallo Jo,

die CMSMS Sprache hat mit dem Problem nichts zu tun. Wichtig sind die Standard-Verbindungseinstellungen von MYSQL.

Überprüfe bitte mal auf beiden Servern mit phpMyAdmin die MYSQL System Variablen

character_set_client
character_set_connection

Gruß, Tobias

Re: Umlaute bei export der DB falsch dargestellt

Posted: Sun Jan 13, 2008 12:35 pm
by d4net
Hallo Tobias,

ich habe mir beides heruntergeladen und installiert. Der Artikel war sehr interessant, wenn ich auch zugeben muss nicht unbedingt alles verstanden zu haben.

Die Überprüfung hat gezweigt, dass
character_set_client
character_set_connection
beides auf utf-8 eingestellt ist.

Die Korrektur der Umlaute hat auch geklappt. :)  Nur ist die Darstellung auf den Seiten noch nicht korrekt,  :-\ wahrscheinlich wegen der encodierung. Doch ist mir noch nicht so ganz klar, wo ich das jetzt umstellen muss. ???  Ich such mal und poste dann das Resultat.

Danke auf jeden Fall schon mal für Deine Hilfe.

Bis dann.

Gruß Jo

Re: Umlaute bei export der DB falsch dargestellt

Posted: Sun Jan 13, 2008 6:43 pm
by tobik
In diesem Fall suche die Datei include.php im CMSMS Verzeichnis. In dieser Datei gehe zu Zeile 114 und entferne dort die Kommentarzeichen (//) am Zeilenanfang. Es muss also letztlich folgendermassen aussehen:

Code: Select all

    $cmsdb->Execute('set names utf8'); // database connection with utf-8

Re: Umlaute bei export der DB falsch dargestellt

Posted: Tue Jan 15, 2008 7:41 am
by d4net
Guten Morgen Tobias,

entschuldige das verspätete Danke, aber ich hab paar Tage auf der Nase gelegen.

Dein Tipp funzt und bis auf wenige Zeichen, ß, Großgeschriebene Umlaute ... funktioniert die Datenbank jetzt auch korrekt. Ich muss nur noch checken ob ich bei erneuter Dateneingabe das Problem wieder habe.

Bis dahin

Gruß Jo