Umlautprobleme bei eingespielter Datenbank


#1

Gestern musste ich aufgrund eines Fehlers meine Wordpress Datenbank zurückspielen. Ich nutze dafür immer MySQLDumper in der Version, die auch mit PHP 7 funktioniert. Mit Erschrecken musste ich feststellen, dass alle Umlaute durch seltsame Zeichen ersetzt wurden. Im Nachhinein stellte ich fest, dass beim Dumper seit August 2018 die Kodierung der Datenbank nicht mehr angezeigt wurde, obwohl beim Dump UTF-8 ausgewählt wurde.

Wahrscheinlich hat das mal wieder mit einem bplaced Update zu tun. :frowning:

Aus irgendeinen Grund ignoriert MySQLDumper die Angabe der Zeichenkodierung in der Datenbank bei der Sicherung. In der Konfigurationsdatei meines Blogs habe ich nun UTF-8 mit latin1 ersetzt.

Wie bekomme ich einen Datenbankdump in UTF-8, den ich auch einspielen kann?

https://blog.aschnabel.bplaced.net/


#2

Ich habe die heruntergeladene Sicherung der Datenbank noch mal geprüft. Laut Notepad++ ist die Datenbank in UTF-8 kodiert. Warum zerschießt mir dann der Dumper bei der Rücksicherung den Zeichensatz?

Na offenbar scheint jetzt auch mein Webspace down zu sein. :frowning:


#3

Also das Dateiformat ist UTF-8 und die Tabellen werden auch wieder darin erstellt? Dann sollte das passen. Es könnte dann noch an der Verbindung liegen. Ist die beim Dumper auf UTF-8 gestellt (“SET NAMES UTF-8”)?

Siehe auch: https://stackoverflow.com/questions/152288/loading-utf-8-encoded-dump-into-mysql

Kenne die Software nicht, von daher ist das jetzt eher geraten … Falls der Dump als .sql (mit den Klartextbefehlen) vorliegt, müsstest du das eigentlich dort am Anfang einfügen können.

Mfg :wink:


#4

hi

also soweit dürfte das an sich kein Problem darstellen, da der Dump ja für sich selbst schon sagt in welchem Zeichensatz dieser auch wieder einzuspielen ist - zumindest sollte das der Fall sein.

Der Datenbankstandard ist Latin1, jedoch werden die Daten dann unter Angabe (ob Latin1 oder UTF8 oder was auch immer) immer je nach Angabe des Zeichensatzes gespeichert und/oder übertragen.

Beispiel: die Daten in der Tabelle können Latin1 sein, die Übertragung (zum PHP-Script) aber dann in UTF-8, wo dann das Script die Daten auch wieder konvertieren und dem Browser gegenüber anzeigen kann.
Im Prinzip heißt das, dass der Zeichensatz mehrfach gewechselt werden kann und oftmals auch wirklich mehrfach gewechselt wird.

In jedem Fall sollte das genannte SET NAMES UTF-8; oder z.B. Latin1 nach dem Verbindungsaufbau das gewünschte Resultat bringen können.

Soweit sehe ich derweil zumindest keine Umlautprobleme auf der Seite. Hat sich die Angelegenheit erübrigt?


#5

Ganz unten bei phpMyAdmin steht in den Tabellenauflistungen latin-1 Ansonsten scheinen die einzelnen Tabellen in UTF-8 konvertiert zu sein.

In der config.php musste ich den Zeichensatz auf latin-1 umstellen ansonsten bekomme ich bei den Sonderzeichen (Umlaute) Zeichensalat. Seit der Umstellung der Infrastruktur ist MySQLDumper wohl unbrauchbar geworden da, wie schon mal gesagt, die Konvertierung des Datenbankdumps nicht mehr angezeigt wird.