fgetcsv funktioniert mit Umlauten so lange diese nicht das erste Zeichen darstellen

TribunM

Erfahrenes Mitglied
Haudi,

ich habe ein kurioses Problem. Ich importiere per fgetcsv eine csv in php und verarbeite die dann weiter. Ich habe ein Titelfeld. Das kann auch Umlaute erhalten und Sonderzeichen. Alles kein Problem bis auf eine Ausnahme. Sobald eine Spalte mit einem Umlaut anfängt wird das Zeichen ignoriert. Sprich: Ärtzte wird zu rzte.

Woran kann das denn liegen? Die csv ist UTF8 codiert.

//EDIT

Mir ist gerade aufgefallen, dass dieses Problem auf dem lokalen System nicht auftaucht. Kann das vielleicht auch mit Windoof und Linux zusammenhängen? Weil es sind sonst die gleichen Dateien. Wüsste also nicht, was da anders ist.
 
Zuletzt bearbeitet:
Ja alles. Ich meine wenn es nicht utf8 wäre. dann würde ätöäöü nur t ergeben und nicht töäöü. Also Umlaute gehen schon nur eben nicht der erste, was sehr kurios ist.

Ich weiß im Mom auch keine Lösung. Es sind ja auch online die selben Dateien. Aber lokal auf einem Windoof Rechner ist dieser Fehler nicht.
 
Hallo,

das wird vermutlich daran liegen, dass Windows im "dos charset" zwei Byte [0x0D 0x0A] und der Server im "unix charset" nur ein Byte [0x0A] als Zeilenumbruch verwendet. Wenn nach dem Zeilenumbruch ein UTF8-Multibyte folgt gibt es offensichtlich Probleme mit der Interpretation.

Tut mir leid, wenn ich dir nur diesen Tipp mitgeben kann, aber suche mal in den Anwender-Beiträgen vom php-Manual/fgetcsv nach "utf-8".
 
Hier steht was dazu geschrieben.

Es scheint ein ungelöster PHP Bug zu sein. Die Seite bis zum Ende lesen da das Datum des ersten Beitrages schon älter ist.

Am Ende steht dann eine leidliche Lösung.
 
Hm so etwas wie dem Workaround hatte ich mir auch schon ausgedacht, aber das ist doch keine Lösung? Aber anscheinend kann man das wirklich nicht ohne weiteres lösen. So ein Mist. Aber scheint nicht anders zu funktionieren, als son Workaraund.

Danke für eure Tipps. Vielleicht findet sich noch eine "elegante" Methode, auch wenn ich schwarz sehe im Moment...
 
Zurück