Alex: mySQL - Dump - Zeichenkodierung und Dump über PHP system()

Beitrag lesen

Hallo,

danke für deine Antwort!

In dem Fall sieht es so aus, als ob der TC davon ausgeht, er bekäme ISO-8859-1 (oder Windows-1252), tatsächlich ist es aber UTF-8. Dem mysqldump kann man einen Parameter mitgeben, der die gewünschte Zeichenkodierung angibt. Was anderes als UTF-8 führt jedoch eventuell zu Datenverlust, wenn Zeichen außerhalb der Möglichkeiten der gewünschten Kodierung vorhanden sind.

Ich habe jetzt im TotalCommander nochmal nachgeschaut und die Option UTF-8 gefunden. Jetzt klappt es auch mit den Umlauten. (Vorher hatte ich im Notepad schon probiert, als UTF-8 zu speichern, das hat aber nichts gebracht).
Das heißt also, dass die Darstellungsprobleme wirklich nur an meinem Computer lagen nehme ich an?

Bei der Bildschirmausgabe nach dem dump (per readfile()) sieht auch alles OK aus.

Hier wird es wohl, genauer betrachtet, so sein, dass PHP eine Ausgabe an einen Browser schickt, oder? Entweder hat der Browser zufällig richtig geraten oder er hat gesagt bekommen, welche Kodierung vorliegt.

War wohl eher Zufall. Die PHP-Datei selbst ist laut Dreamweaver ISO. Ansonsten wird nichts bezüglich der Codierung eingestellt. Im Firefox wird es als UTF-8 angezeigt...

Nachdem ich überall geschaut habe, dass es die gleiche Zeichenkodierung ist,

Standardkodierung von der Datenbank und Codierung der einzelnen Tabellen/Spalten. Und die entsprechenden Einstellungen in mysqldump.

Wenn du keine Umkodierung vornimmst und auch weder beim Dump noch beim Einspielen eine explizite Kodierungsangabe angegeben hast, wird der Server seinen Default für beide Vorgänge nehmen, und alles wird gut.

»»
Gut :)

Alles was du mit mysqldump hinbekommen kannst, steht in seiner Dokumentation. Hast du da mal nachgeschaut?

Das habe ich schon vorher gelesen. Das einzige, was erfolgversprechend geklungen hat, war --result-file. Hat aber nichts geändert.

Kommt sicher false raus oder ist nur die letzte Zeile der Ausgabe eine Leerzeile, die auch als false erkannt wird? Ein typsicherer Vergleich mit === oder !== räumt Zweideutigkeiten aus dem Weg.

Das verstehe ich leider nicht.

Wenn ich var_dump(system("mysqldump...")) mache bekomme ich string(0) ""
Bei var_dump() vom Output von system bekomme ich int(0)

Vielleicht kannst du mir da nochmal einen kleinen Tipp geben - danke schomal!

Gruß
Alex

Lo!