echo $begrüßung;
Wie kann ich denn nun ausgeben lassen wie mein Provider die Seiten kodiert?
Das hast du schon gemacht, als du mit der livehttpheaders-Extension die Headers ausgegeben hast. Vorausgesetzt, das war eine Ausgabe von einer vom Provider ausgelieferten Seite. Die meisten Provider werden zwar einen passenden Content-Type für HTML-Dokumente mitsenden, aber keinerlei Default-Kodierungsangabe. Denn dann hat die vom Kunden gemachte charset-Angabe im Meta-Element des HTML-Textes die Möglichkeit, zur Geltung zu kommen.
Wenn du eine Per-Verzeichnis-Konfigurationsdatei - meist .htaccess genannt - nutzen kannst, kannst du dort selbst bestimmen, welche Default-Kodierungsangabe im Content-Type-Header mitgesendet werden soll. Außerdem kannst auch den passenden Content-Type-Header inklusive charset-Angabe mittels PHP selbst setzen - Stichwort: header(). Beide Themen hatte ich bereits verlinkt.
Dann hat auf meiner Seite der Benutzer die Möglichkeit Text einzugeben. Dieser Text wird dann mit PHP (ISO-8859-1) geprüft, ergänzt, in MySQL (UTF-8) gespeichert und später wieder ausgelesen und ausgegeben. Tu ich dann überhaupt noch vollständig UTF-8 ausliefern?
Wenn du die Seite UTF-8-kodiert lieferst, und auch dem Browser nicht bittest, für das auszufüllende Formular eine andere Kodierung zu verwenden (Attribut accept-charset), dann wird er dir ebenfalls UTF-8-kodiert antworten. Wenn du das zum Zwecke der Prüfung mittels PHP-Stringfunktionen in ISO 8859-1 umwandelst, kannst du auch gleich auf UTF-8 verzeichten, denn bei dieser Umwandlung gehen alle Zeichen verloren, die sich nicht mit ISO 8859-1 kodieren lassen. Du musst schon vollständig bei UTF-8 bleiben (oder eine andere der Unicode-Kodierungen verwenden, die allerdings noch weniger von PHP unterstützt werden). Die Regular Expression Functions (Perl-Compatible) kennen einen Modifier u. Das scheint mir dann die einzige sinnvolle, provider-relevante Prüfungsmöglichkeit zu sein, doch da kann ich dir nicht mit Erfahrung dienen.
echo "$verabschiedung $name";