echo $begrüßung;
Vielen Dank erstmal! Wenn ich Ǝ nehme, dann zeigt der Firefox es korrekt an, aber der Internet Explorer zeigt nur ein Kästchen!
Was meinst du mit Entitäten?
Eine Entität ist im Zusammenhang mit HTML so etwas wie ä. Das obige ist keine Entität sondern "nur" eine numerische Zeichenreferenz (NCR).
Meinst du, dass content="" im <meta>-tag angepasst werden muss? Ich habe da jetzt <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Diese Angabe hat auf die Darstellung von Entitäten und NCRs keinen Einfluss. Sie gibt an, in welcher Kodierung das Dokument vorliegt. Eine Zeichenkodierung schreibt vor, welchem Zeichen welcher Wert zugewiesen ist. So hat zum Beispiel in den Kodierungen ASCII, ISO 8859-1 und UTF-8 (um nur mal drei der wichtigsten Vertreter zu nennen) das kleine a den Wert 97, b 98, c 99 usw. usf. Nächstes Beispiel: Umlaute. Diese können mit ASCII gar nicht kodiert werden. Mit ISO 8859-1 bekommt ein ä den Wert 228. Und mit UTF-8 wird es mit zwei Bytes kodiert: 195 164.
Praktisch bedeutet dies, dass du Texte in einem Editor schreiben musst, der den Text in der gewünschten Kodierung speichern kann. Schreibst du HTML-Texte und kommen die verwendeten Zeichen in der von dir beim Speichern verwendeten Zeichenkodierung vor, kannst du sie auch so in den Text schreiben. Für andere Zeichen muss eine Ersatzdarstellung herhalten. Beispiel: Du kannst deine Umlaute "ganz normal" eintippen und sie werden mit ISO 8859-1 kodiert in deinem Dokument keine Probleme bereiten. Das €-Zeichen ist hingegen in ISO 8859-1 nicht enthalten und benötigt eine Ersatzdarstellung in Form eines Entity oder einer NCR.
Damit nun der Empfänger des Dokuments weiß, wie er die ankommenden Bytes zu interpretieren hat, gibt du ihm die verwendete Kodierung bekannt. Das passiert beim HTTP-Übertragungsprotokoll in im Content-Type-Header. Ist diese Angabe nicht vorhanden kann ersatzweise ein gleichnamiger META-Tag im HTML-Dokument herangezogen werden.
Bei numerische Zeichenreferenzen werden übrigens immer die Unicode-Werte der Zeichen angegeben. Dies ist in der HTML-Spezifikation so festgelegt[*] und muss von jedem Browser ohne weitere Angaben verstanden werden.
aber der IE zeigt es immer noch falsch
Das liegt sicher daran, dass der IE nicht in der Lage war, für dieses Zeichen eine passende Darstellung im aktuell verwendeten Font zu finden oder einen anderen Font zu verwenden, der dieses Zeichen enthält. Du könntest den IE bei der Darstellung unterstützen, wenn du Windows entprechende Font-Dateien spendierst, und dem Browser die Verwendung dieser Fonts für die Darstellung vorschlägst. Alternativ könntest du eine Grafik erstellen und diese einbinden.
echo "$verabschiedung $name";
[*] Um genau zu sein ist es nicht Unicode sondern ISO 10646, aber seit 1993 sind diese beiden identisch.