Pobleme bei der Darstellung von Umlauten

Hallo zusammen,

PHP bringt mich mal wieder an die Grenzen meines Verständnisses :smile:Folgendes Problem tritt auf: Aus einer reinen Textdatei (erstellt mit dem Texteditor von Windows) soll ein Text zeilenweise ausgelesen und in einer PHP-Datei dargestellt werden.
Um’s abzukürzen spar ich mir hier das durchlaufen der Datei mit Variablen und spreche ein Feld des eingelesenen Arrays direkt an:

<?php $fileNS = file('datei.txt');
echo $fileNS[0]; ?\> Alles funktioniert einwandfrei - nur die Darstellung von Umlauten nicht. Stattdessen erscheinen nur die altbekannten schwarzen Rauten. Seltsamerweise: Wenn ich - in den html-Part der Datei oder via echo in PHP direkt Umlaute ausgeben lasse funktioniert das einwandfrei.  Im Header ist die Datei mit "meta charset="utf-8" codiert. Weiß einer, wo der Fehler liegen könnte?Vielen Dank vorab :smile:

Hi,

nutzt du Linux?

Gruß XXD

Nein, ich selber arbeite unter Windows 7, das gleiche Problem besteht aber auch unter Vista und Windows XP. Die Website wird bei 1und1 gehostet. Aber serverseitig dürfte das Problem ja nicht liegen - sonst würden die Umlaute bei der direkten echo-Ausgabe ja auch nicht dargestellt, oder ?

Konvertier die Datei in Windows mal mit dem Zeichensatz utf-8 und speicher sie darunter ab.
Da ich kein Windows habe kann ich leider dein Problem jetzt nicht testen.

Es liegt ausschliesslich am Server und wie er die Datei einstufft.
Wenn eine Datei nicht im UTF-8 Format (bei linux ohne Bom) speichert dann versucht der Server das Zeichen was er findet vorher umzuwandeln , das klappt aber leider so nicht . Die Zeichen liegen auf ganz anderen Werten .

regel ist also

datei muss utf-8 sein , die ausgabe des servers auch und bei php utf-8 als header senden.

wenn das alles stimmig ist dann wird es auch als UTF-8 im Browser wiedergegeben und das auch richtig . Wenn irgendwo was anders ist wird konvertiert und das meist mit verlust .