Moin!
<?php
$string = "ÄÖÜ äöüß";
echo"$string - ";
$string2 = utf8_decode($string);
echo"$string2";
?>gibt folgendes aus: ÄÖÜ äöüß - ????
Für das Ö sollte aber Ö in $string2 stehen. Warum funktioniert das nicht?
Wenn dein PHP-Skript nicht UTF-8-codiert gespeichert wurde, steht in $string kein UTF-8-codierter String.
Und wenn das Skript so codiert wurde, steht hinterher in $string2 derselbe String, allerdings in ISO-8859-1 codiert.
Wenn du dann das Gemisch der beiden Codierungen hintereinander ausgibst, kann nur eine der beiden Codierungen korrekt sein - in diesem Fall $string. Das sagt allerdings noch nichts darüber aus, ob $string auch wirklich UTF-8 ist, und damit durch utf8_decode() dekodierbar.
Das, was du haben willst, ist aber eine numerische Zeichenreferenz in HTML - das produziert dir aber die Funktion utf8_decode() NICHT. Diese Funktion hat von HTML keinen Schimmer, auch nicht von irgendwelchen Entities oder numerischen Zeichenreferenzen.
- Sven Rautenberg
"Love your nation - respect the others."