dedlfix: Sonderzeichen-Einfüge-Leiste

Beitrag lesen

echo $begrüßung;

Ich lese die Sonderzeichen in einen Array ein, erstmal per Line und dann per Zeichen.
$chars = "åöä"
for($i=0;$i<strlen($chars;$i++) echo $chars[$i] . " ";
Dabei tritt mir das erste Problem auf die Füße: der Zeichensatz des Dokuments ist utf-8. Dementsprechend habe ich die Zeichen im Klartext in die Variable geschrieben und nicht irgendwie maskiert.
Die Ausgabe ist dann aber "? ? ? ? ?". Verwunderswert hierbei nicht nur, dass er die Zeichen nicht erkennt, sondern, dass er gleich 5 draus macht.

Eigentlich müsste er 6 draus machen, da die angegebenen Zeichen in UTF-8 mit 6 Bytes kodiert werden. Und damit kommen wir zum Problem: PHP ist noch nicht Unicode/UTF-8-fähig. Das soll, meinen Erinnerungen zufolge, erst in Version 6 soweit sein.

Es gibt einige Multibyte-Funktionen, zu denen ich nichts weiter sagen kann.

Das Umwandeln in ISO-8859-1/15/sonstwas wird keine Lösung sein, da darin nicht alle UTF-8-Zeichen abgebildet werden können. Eventuell findest du aber einen ISO-8859-Zeichensatz, der alle gewünschten Zeichen gleichzeitig enthält... Aber wenn du einen sprachunabhängigen Vokabeltrainer schreiben möchtest fällt das auch aus.

for($i=0;$i<strlen($chars;$i++) echo $chars[$i] . " ";
[...] String=Array [...]

Das ist so nicht richtig. Die Syntax um auf einzelne Zeichen zuzugreifen ist: $string{$position}. Die Array-Klammern-Syntax [] sind nicht mehr aktuell.

echo "$verabschiedung $name";