utf8_decode()
Rainer
- php
Hallo,
<?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?
Gruß Rainer
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
@@Sven Rautenberg:
Das, was du haben willst, ist aber eine numerische Zeichenreferenz in HTML
Warum sollte man das wollen?
„Es ist fast immer besser, eine Zeichencodierung zu benutzen, die es erlaubt, die Zeichen in ihrer normalen Form zu verwenden, anstatt Zeichen-Entity-Referenzen oder numerische Zeichenreferenzen zu verwenden.“ [QA-ESCAPES]
Live long and prosper,
Gunnar