Ein Fragezeichen zuviel

Moin,

ich habe ein kleines Problem. Ich lese eine Datei mittels file_get_contents(); ein, um hinterher noch String-Funktionen rüberzuschmeissen. Das Problem dabei ist natürlich das Charset. Soweit habe ich es schon gelöst. Meine Testdateien:

test.tpl

Test äüöÄÜÖß
<?php
$file = file_get_contents('test.tpl', 'r');
if(mb_detect_encoding($file) == "UTF-8") { $file = utf8_decode($file); }
$file = htmlentities($file);
$file = strtolower($file);
echo $file;
?>

Soweit eigentlich recht logisch, was da abläuft. Mein Problem ist aber, dass ich als Ausgabe
„?test äüöäüöß“ erhalte. Wo kommt da das Fragezeichen her? Weiss jemand sich darauf einen Reim zu machen? Ich bin momentan recht ratlos … :smoke:

MfG
myPages

[at.php.net/file_get_contents](http://at.php.net/file_get_contents)

Der 2. Parameter stimmt nicht, lass den einfach weg :wink:

at.php.net/file_get_contents

Der 2. Parameter stimmt nicht, lass den einfach weg :wink:

Moin,

mal abgesehen, davon dass du Recht hast und das ein Überbleibsel von fopen war :wink: und da nicht hingehört, nutzt es leider nichts. Das Fragezeichen bleibt dennoch dastehen. :astonished: Weitere Ideen? :wink:

MfG
myPages

Das kann ein Überbleibsel des BOM sein, hast du die Datei mit BOM gespeichert?
de.wikipedia.org/wiki/Byte_Order_Mark

Moin,

lag tatsächlich daran. Danke dir. Damit ist das Problem gelöst :slight_smile: (Ich könnt mich manchmal für meine eigene Dummheit echt ohrfeigen !haue )

MfG
myPages

du kannst auch die vorhande Zeichenkodierung belassen und “mb_stringfunktionen” nutzen.
z.b.
mb_stringtolower($string, ‘UTF-8’);
oder auch
mb_substr($string, 10, 20, ‘UTF-8’);
und so weiter. Einfach mal bei php.net nachschauen, wenn dich das interessiert.