#1 17. September 2011 MySQL-Daten, Excel, exportieren, utf8 Hey Leute Die Daten genauer die Umlaute in meiner Datenbank werden in phpMyAdmin nicht richtig angezeigt. Wenn ich diese aber auslese oder bearbeite, dann passt alles. Meine Dateien und die Datenbank sind mit utf8 kodiert. Jetzt will ich allerdings meine Daten als Excel-Datei exportieren. 1. Mac: Ich lasse die Daten wie sie sind und erstelle die xls-Datei. Wenn ich mir die xls-Datei jetzt auf meinem Mac mit Numbers öffne kommt eine kleine Fehlermeldung, dann werden die Umlaute richtig angezeigt. Fehlermeldung: Dies ist ein tab-delimitiertes Dokument und kein gültiges Excel-Dokument. Die Daten werden möglicherweise anders angezeigt. 2. PC: Ich öffne die Datei mit Excel und die Umlaute werden falsch angezeigt. Auch hier eine Fehlermeldung. Fehlermeldung: Sie versuchen eine Datei zu öffnen, NAME, deren Format von dem der Dateierweiterung abweicht. Jetzt habe ich etwas mit der Funktion utf8_decode() rum probiert und damit geht es auf dem PC, aber auf dem Mac nicht. PHP: $select = "SELECT ... FROM ..." ; $export = mysql_query ( $select ); $header .= Kundennummer . "\t" ; $header .= Name . "\t" ; $header .= Postleitzahl . "\t" ; $header .= Stadt . "\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 ); $currentDate = date ( 'd.m.Y' ); $fileName = 'Händler-Liste ' . $currentDate . '' ; $rs_count = mysql_query ( 'SELECT ... FROM ...' ) OR die( mysql_error ()); $count_sho = mysql_num_rows ( $rs_count ); $fileHead = utf8_decode ( 'Hänlder-Liste' ); $fileColsingCount = utf8_decode ( 'Anzahl der Einträge: ' . $count_sho . '' ); $fileColsingDate = 'Stand: ' . $currentDate . '' ; $decodeData = utf8_decode ( $data ); header ( "Content-type: application/octet-stream" ); header ( "Content-Disposition: attachment; filename=" . $fileName . ".xls" ); header ( "Pragma: no-cache" ); header ( "Expires: 0" ); print " $fileHead \n\n $header \n\n $decodeData \n $fileColsingCount \n $fileColsingDate " ; Das Script aus dem Netz und ich habe es nur angepasst. Weiß einer weiter, wie ich das Skript so hinbekommen, dass es auf Mac und Windows korrekt läuft? Danke, Greetz Mirak + Multi-Zitat Zitieren
#2 17. September 2011 AW: MySQL-Daten, Excel, exportieren, utf8 speicher das php-script als utf-8 ohne bom ab + Multi-Zitat Zitieren
#3 17. September 2011 AW: MySQL-Daten, Excel, exportieren, utf8 Meinst du so? PHP: header ( "Content-type: application/octet-stream; charset: utf-8" ); Weil das habe ich schon probiert. Ich habe auch schon bei Content-type den passenden Typ für einen Excel-Datei angegeben. Was bitte ist bom? Danke, BW ist raus. + Multi-Zitat Zitieren
#4 17. September 2011 AW: MySQL-Daten, Excel, exportieren, utf8 Byte_Order_Mark + Multi-Zitat Zitieren
#5 17. September 2011 AW: MySQL-Daten, Excel, exportieren, utf8 nein, nicht so. du musst das script so abspeichern. ich weiß nicht welchen editor du verwendest, aber unter notepad++ geht das so: Kodierung -> Konvertiere zu UTF-8 ohne BOM dann speichern und es sollte funktionieren (utf8_decode natürlich weglassen). ein charset über einen header gibt man btw so an: PHP: header ( "Content-type: ...der typ...; Charset=utf-8" ); + Multi-Zitat Zitieren