Tutorials
Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.
Zurück zur Übersicht
PHP: Umlaute/Sonderzeichen in CSV Export (Encoding)
#Tutorials#PHP
Bei einem CSV Export via PHP ist mir aufgefallen, dass viele Sonderzeichen, insbesondere das €-Zeichen (Euro) einfach kaputt dargestellt werden. Nach sehr langer Suche und herumprobieren habe ich hier die Lösung gefunden.
Excel erwartet das Windows 1252 Encoding, geliefert hatte ich UTF-8. Alle anderen Encodings, besonders ISO 8859-1 (Latin1) gehen nicht, da das €-Zeichen erst ab ISO 8859-15 drin war. Aber auch ISO 8859-15 war nicht ausreichend für Excel.
Funktion
function convertToWindowsCharset($string) {
$charset = mb_detect_encoding(
$string,
"UTF-8, ISO-8859-1, ISO-8859-15",
true
);
$string = mb_convert_encoding($string, "Windows-1252", $charset);
return $string;
}
Benutzung
$str = '€äüöüö';
$str = convertToWindowsCharset($str);
// nun ist $str im windows1252 Format und Excel kann es lesen
Kommentare
Mega!
Grüße Andre
Hinterlasse einen Kommentar