Mit phpmyadmin alle Tabellen einzeln sichern

Super!
Und schon wieder was dazu gelernt.

Jetzt gibt es noch ein kleines Problemchen.
Und zwar hat die Ausgangs Datenbank das Format: latin1_swedish_ci und die Datenbank in die ich importiere hat das Format: utf8_general_ci.
Nun werden die Umlaute nicht richtig dargestellt. Kann man das irgendwie auf die schnelle beheben?

Gruß
 
Du könntest alle Daten durch utf8_encode() schicken, dann bekommst du jeweils den UTF8-String dafür zurück. Wenn du das machen willst, bevor das in der Export-Datei landet, mach ein array_map() auf dein $row-Ergebnis. In etwa so:

PHP:
    //Daten ausgeben
    while($row = mysql_fetch_row($result)){
        fputcsv($fileHandler, array_map('utf8_encode', $row), $sep, '"');
    }

Achte bitte darauf, das du evtl. auch den Byte-Order-Mark in die CSV-Datei schreibst, bevor die Daten reingeschrieben werden. Am besten direkt nach dem Öffnen des CSV-Files:

PHP:
    $fileHandler = fopen($dir, 'w+');
    // BOM reinschreiben
    fprintf($fileHandler, chr(0xEF).chr(0xBB).chr(0xBF));
    // Erst dann die CSV-Daten mit fputcsv reinschreiben....

Da die Daten sonst nicht wirklich als UTF8 abgespeichert werden.
 
Zurück