echo $begrüßung;
Allerdings will der die Umlaute immer noch nicht ersetzen. Im Internetexploter bleibt das ü ein ü und im Firefox Quelltext wird es als %C3%BC dargestellt.
Das ist aber eine URL-Kodierung, die nicht im direkten Zusammenhang mit dem Ersetzungsversuch steht.
Wenn ich mir den String per bin2hex ausgebe, sehe ich nur noch Zahlen und Buchstaben in einer Reihe, die mir im Moment noch nicht viel sagen. Muss ich die Zahlen paarweise lesen?
Ja, zwei Ziffern (inklusive A..F) ergeben ein Byte. Unter ISO-8859-x entspricht jedes Byte einem Zeichen. Eine Tabelle für ISO-8859-15 steht unter anderem in der Wikipedia. Die Bytes 00..7F sind immer gleich. Die Unterschiede zwischen den ISO-8859-Kodierungen gibt es auch in übersichtlicher Form.
Du kannst statt bin2hex() auch urlencode() nehmen, dann werden nur Sonderzeichen und Zeichen oberhalb von 7F als Bytewerte drgestellt.
echo "$verabschiedung $name";