Hallo,
Und genau die CSV-Datei (die nicht von mir kommt) ist das Problem. Wenn ich die in Notepad öffne, wird mir als Zeichencode ANSI angezeigt.
ja, weil der Windows-Editor nicht glaubt, dass überhaupt noch jemand ASCII verwendet und daher ANSI als "einfachste" Codierung vorschlägt. Wobei der das als Sammelbegriff für alle 1-Byte-Codierungen meint.
Wenn ich die Daten beim Einlesen testweise mit mb_detect_encoding() in der Konsole anzeige, wird bei "normalem" Text ohne Umlaute ASCII angezeigt.
PHP ist etwas archaischer: Wenn der Text keine Zeichen mit Codes oberhalb 0x7F enthält, ist ASCII eine gültige Aussage.
Sobald ein Wert mit z.B. einem ä (bzw. hier ä) kommt, lautet die Anzeige UTF-8.
Also kommt die CSV-Datei in UTF-8 codiert daher.
Nun sind ja in ASCII keine Umlaute enthalten. Deswegen vielleicht die automatische Umschaltung auf UTF-8, die dann aber nicht passt, weil die Daten als ANSI gespeichert sind?
Sind sie das wirklich?
Sämtliche scriptseitigen Versuche mit mb_convert_encoding() und iconv() in verschiedenen Kombinationen haben erstmal keinen Erfolg gebracht. Wäre das überhaupt der richtige Ansatz?
Auf jeden Fall erstmal sicher feststellen, welches Programm welche Codierung liefert. Dann überlegen: An welcher Stelle ist eine Konvertierung in UTF-8 am sinnvollsten? Und dann auch konsequent dabei bleiben.
Einen schönen Tag noch
Martin
Manchmal kann man gar nicht so viel fühlen, wie man denkt.
Und manchmal fühlt man so viel, dass man gar nicht denken kann.