echo $begrüßung;
Hier ist das DBMS gefordert. Kann es mit UTF-8 umgehen, muss man ihm mitunter noch mitteilen, dass man es auch zu verwenden gedenkt, denn die Standardeinstellung ist das nicht unbedingt. Kann es nicht mit UTF-8 umgehen, kann man es in der Regel trotzdem verwenden. Allerdings darf man dann nicht erwarten, dass es Dinge richtig macht, bei denen es auf die korrekte Interpretaion der Zeichen ankommt (z.B. Sortierung und String-Funktionen).
heist das, dass ich alle POST und GET daten mit dieser Funktion behandeln muss: "utf8_decode" und alle Daten die aus der DB kommen mit "utf8_encode" ?
Der Vorteil von UTF-8 gegenüber beispielsweise ISO 8859-1 ist, dass damit wesentlich mehr Zeichen kodiert werden können. Diese Funktionen wandeln zwischen den genannten Kodierungen hin und her. Das ist nicht in jedem Fall möglich, da ISO 8859-1 nur 256 Zeichen darstellen kann. Alle Zeichen, die darin nicht definiert sind, gehen bei einer Umwandlung aus UTF-8 verloren oder werden durch ein Ersatzzeichen repräsentiert, aus dem das ursprüngliche Zeichen nicht wiederhergestellt werden kann. Dein Ziel ist also, derartige Konvertierungen zu vermeiden, ansonsten lohnt sich UTF-8 nicht.
Einem DBMS, das definitiv nicht mit UTF-8 umgehen kann (beispielsweise MySQL bis einschließlich Version 4.0) kann auf Latin1 (= ISO 8859-1) gestellt werden und bekommt UTF-8-Daten einfach so durchgereicht. Es wird sie als Bytefolge speichern und auch so wieder rausgeben. Solange keine Sortierung oder String-Funktionen verwendet werden sollen, sollte das DBMS damit kein Problem haben.
Ein DBMS, das damit umgehen kann (beispielsweise MySQL ab Version 4.1), sollte man so konfigurieren, dass es die Feldinhalte als UTF-8 behandelt und auch auf der Verbindung zwischen sich und den Clients UTF-8 spricht. Ansonsten kann es zu Datenverlust durch Missinterpretationen oder durch eine automatisch durchgeführte Konvertierung (siehe oben) kommen.
Konsultiere bitte das Handbuch deines Systems, was es zum Thema Zeichensatz und -kodierung zu sagen hat.
Falls es sich um MySQL handelt, ist dieses Kapitel nicht gerade klein. Die Zusammenfassung lautet: Beim Erstellen von Tabellen und Feldern Stringfeldern die Kodierungs- bzw. Kollationsangabe angeben (z.B. utf8_general_ci oder utf8_unicode_ci) und beim Verbindungsaufbau explizit UTF-8 einstellen (SET NAMES utf8 als erstes Statement senden). (Diese Zusammenfassung entbindet dich nicht von der Lektüre des Handbuchs :-)
echo "$verabschiedung $name";