• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL nach Excel exportieren: Probleme mit Umlauten

skizZ

Mitglied
Hallo zusammen,

ich möchte gerne den Inhalt einer MySQL-Tabelle in ein Excel-Dokument exportieren. Hierfür benutzt ich folgendes Script:

PHP:
for ($i = 0; $i < $fields; $i++) { 
    $header .= mysql_field_name($export, $i) . "\t"; 
}


while($row = mysql_fetch_row($export)) { 
    $line = ''; 
    foreach($row as $value) {                                             
        if ((!isset($value)) OR ($value == "")) { 
            $value = "\t"; 
        } else { 
            $value = str_replace('"', '""', $value); 
            $value = '"' . $value . '"' . "\t"; 
        } 
        $line .= $value; 
    } 
    $data .= trim($line)."\n"; 
} 
$data = str_replace("\r","",$data);  


if ($data == "") { 
    $data = "\n(0) Records Found!\n";                         
}  
$date = date("Y_m_d");
$file.= $date."benutzerdaten_export"; 
header("Content-Type: application/force-download");
header("Pragma: "); 
header("Cache-Control: ");
header("Content-Disposition: attachment; filename=".$file.".xls"); 
header("Expires: 0"); 
print "$header\n$data";

Nun habe ich das Problem, dass Umlaute nicht korrekt angezeigt werden. Die Datenbank liegt im UTF-8 Format vor. Das Problem sollte also damit zusammenhängen. Wie kann ich das entsprechend umgehen?

skizZ
 
Werbung:
Als Zielzeichensatz dann vermutlich Windows-1252. Es muss aber für sowas mittlerweile elegantere Lösungen geben. Irgendwann muss doch auch Excel mal den Umgang mit UTF-8 (Edit: bzw. Unicode insgesamt) lernen.

Ich würde da in jedem Fall noch ein wenig im Web suchen.

Edit: Um das noch kurz auszuführen: Windows-1252 deckt im Wesentlichen diese Zeichen ab:

- http://de.wikipedia.org/wiki/ISO_8859-1#ISO.2FIEC_8859-1

Für den „westlichen“ Schriftbereich reicht das in der Regel, aber je weiter es etwa nach Osteuropa geht, desto mehr Zeichen werden nicht unterstützt.
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben