Mailinglisten-Archive |
Hallo Liste, ich erzeuge mit PHP aus mysql-Datensätzen eine TXT-Datei, die vom Win2000-FTP-Client im ASCII-Modus runtergeladen und dann von einem DOS Programm weiterverarbeitet wird. Das Problem liegt in den Umlauten, ein "Klüber" wird z.B. zu "Kl³ber" usw. (in DOS mit "type" angezeigt). Der DOS-Mensch meint, ich würde die Daten im Ansi-Format anliefern. Mein erster Lösungsansatz funktioniert insoweit, dass ein "ss" ersetzt wird, aber immer noch keine Umlaute: $row = array( "name1" => "Müller", "name2" => "Klüber", "str" => "Straße" ); print "<pre>"; print_r($row); foreach($row as $key => $val) { $row[$key] = ereg_replace ("ä", "ae", $val); $row[$key] = ereg_replace ("ö", "oe", $val); $row[$key] = ereg_replace ("ü", "ue", $val); $row[$key] = ereg_replace ("Ä", "Ae", $val); $row[$key] = ereg_replace ("Ö", "Oe", $val); $row[$key] = ereg_replace ("Ü", "Ue", $val); $row[$key] = ereg_replace ("ß", "ss", $val); } print_r ($row); Ausgabe: Array ( [name1] => Müller [name2] => Klüber [str] => Straße ) Array ( [name1] => Müller [name2] => Klüber [str] => Strasse ) Der zweite Lösungsansatz besteht darin, die Umlaute durch ASCII-Codes zu ersetzen: $ascii_ae = sprintf("%c", 132); $ascii_oe = sprintf("%c", 148); $ascii_ue = sprintf("%c", 129); $ascii_Ae = sprintf("%c", 142); $ascii_Oe = sprintf("%c", 153); $ascii_Ue = sprintf("%c", 154); $ascii_ss = sprintf("%c", 225); $row = array( "name1" => "Müller", "name2" => "Klüber", "str" => "Straße" ); print "<pre>"; print_r($row); foreach($row as $key => $val) { $row[$key] = ereg_replace ("ä", $ascii_ae, $val); $row[$key] = ereg_replace ("ö", $ascii_oe, $val); $row[$key] = ereg_replace ("ü", $ascii_ue, $val); $row[$key] = ereg_replace ("Ä", $ascii_Ae, $val); $row[$key] = ereg_replace ("Ö", $ascii_Oe, $val); $row[$key] = ereg_replace ("Ü", $ascii_Ue, $val); $row[$key] = ereg_replace ("ß", $ascii_ss, $val); } print_r ($row) Ausgabe: Array ( [name1] => Müller [name2] => Klüber [str] => Straße ) Array ( [name1] => Müller [name2] => Klüber [str] => Straáe ) Auch hier werden die Umlaute erst gar nicht gefunden und ob das ß so richtig "übersetzt" wurde bezweifel ich auch... Was tun? Martin
php::bar PHP Wiki - Listenarchive