csv/xls Export klappt in phpmyadmin nicht

M

maeck

Aktives Mitglied
Thread Starter
Dabei seit
01.04.2006
Beiträge
111
Reaktionspunkte
0
Hallo,

ich habe eine MySQL-DB und wollte eine Tabelle exportieren. Egal ob ich sie als csv oder als Excel-Dokument exportiere, werden beim Senden des Dokumentes keine Sonderzeichen in der Dokument angezeigt. Mache ich den gleichen Vorgang auf der gleichen Datenbank unter Windows, dann werden die Sonderzeichen angezeigt.

Ich browser mit Firefox/Safari und habe 10.4.7.

Hat jemand einen Rat?
 
Ah, das hatte ich auch mal. Das liegt am Zeichencode/format.

Es lag an Zeichensätze/Koalition. Da brauchst Du einen bestimmten, dann gehts. Ich weiß es aber nicht mehr, was das war!
 
und wo stelle ich die "Zeichensätze/Koalition" ein?
 
maeck schrieb:
und wo stelle ich die "Zeichensätze/Koalition" ein?

Die werden beim Erstellen der DB/TAbellen festgelegt! Allerdings kann man beim Erstellen der Backup-Datei in phpmyadmin auch einen Zeichensatz angeben. Gleiches gilt beim Rücksichern, auch hier kann das Encoding der SQL-Dateien angegeben werden (direkt beim upload). Dateien müssen eben immer zwingend in dem Encoding gelesen werden in dem sie erstellt sind! Textwrangler kennt die Option Reload with encoding und erlaubt auch das Speichern in einem andern Encoding ( soweit möglich)
 
Hmm, aber was hat das mit der exportierten Excel-Datei zu tun? Ich exportierte unter Windows eine Tabelle einer Datenbank in eine Excel-Datei. Unter Windows werden die Umlaute dargestellt. Wenn ich das Excel-Dokument unter MacOSX öffne, dann werden die Umlaute nicht dargestellt.
Das gleiche mit einer Textdatei.
 
Excel IST eine Textdatei, nur eben mit ner Menge an Zusatzangaben und daher nicht lesbar wie eine Textdatei! Stimmt das Encoding nicht, so gehen alle Zeichen die mit mehr als 7-Bit dargestellt werden müssen in die Binsen!
CSV ist eine pure Textdatei mit Komma-getrennten Spalten (Colon Seperated Values).

Das Encoding definiert das Alphabet das der Rechner für den Fall verwendet. Die Zeichen sind dafür durchnummeriert. Stell Dir einfach vor Du schreibst nen Text, speicherst aber nicht die Zeichen selbst, sondern die zugehörigen Nummern ( 1. Zeichen, 3. Zeichen,... aus der Liste aller Zeichen). Nun gibst Du diese Nummernliste einem User in Moskau oder Peking. Der öffnet die Liste mit seiner Zeichenübersetzung. Was meinst Du kann er damit anfangen, wenn aus lateinischen Buchstaben ganz andere kyrillische o.Ä. gemacht werden? Daher ist es immer wichtig den verwendeten Zeichensatz zu berachten, vor allem wenn man Systemgrenzen überschreitet (Windows <-> Mac <-> Linux <-> ...). Nimm einfach mal den Textwrangler, lade eine Datei mit Umlauten und verwende dann den Menüpunkt

"Reopen Using Encoding"

wenn Du dann das Encoding damit gezielt verstellst, siehst Du was mit den Umlauten in anderen Encodings passiert. Das Gleiche geschieht in den CSV-Dateien oder eben auch in den Excel-Dateien.
 
VIELEN Dank für die ausführliche Erklärung!
Mit dem Textwrangler hat es geklappt.

Gruß Marcel

PS: Meines Wissens heisst CSV: Character Separated Values oder auch Comma Separated Values.
 
Ich möchte mich der Frage gleich anschliessen.

Ich habe eine Adressen-Tabelle in MySQL. Der Benutzer kann im Browser die Adressen anzeigen lassen und auf Wunsch einen Excel-Export vornehmen.

In PHP habe ich dazu folgenden Header definiert:

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=Adressen.xls");
header("Pragma: no-cache");
header("Expires: 0");

Der Export klappt eigentlich gut, allerdings werden die Umlaute, wie oben auch schon beschrieben, falsch dargestellt.

Gibt es eine Möglichkeit in PHP oder in phpMyAdmin dies zu korrigieren?
 
Zurück
Oben Unten