echo $begrüßung;
Ich habe eine MySQL Datenbank in der ich Namen speichere. Dazu ist MySQL für UTF-8 Zeichensatz konfiguriert.
Diese Aussage ist sehr pauschal. MySQL kennt 10 verschiedenartige Stellen, an denen Kodierungen eine Rolle spielen. Hast du alle beachtet? Vor allem sind die Kodierungen der Felder und die der aktuellen Verbindung relevant. MySQL-Handbuch Kapitel: Character Set Support
Zum versenden von E-Mails an diese Person, mache ich das HTML selbst und dann schaut das so aus:
Leider werden die Umlaute und Sonderzeichen (zB ALT+0999) im Namen aber sehr seltsam angezeigt (Outlook und Thunderbird). Was muss ich tun, damit das klappt?
Gilt in einer Email vielleicht auch das gleiche Prinzip wie bei HTTP? Wenn im HTTP-Header "Content-Type" eine Charset-Angabe steht, gilt diese. Wenn nicht, gilt die aus dem gleichnamigen Meta-Element. HTML-Mails sind in "normale" Mails eingebunden und haben einen eigenen Header. Wie sieht der bei dir aus?
"Seltsam" ist keine Beschreibung, mit der jemand mit Wissen vermuten kann, was konkret schief gelaufen ist. Beschreibe bitte genauer. Am besten ist es, wenn du die Byte-Werte der "seltsamen" Zeichen mit einschlägigen Code-Tabellen vergleichst, z.B. UTF-8 und das hierzulande immer noch übliche ISO-8859-1 bzw. Win-1252.
Ich kenne utf8_encode(), utf8_decode() und htmlentities(), aber wie setze ich die in diesem Fall ein? Alle Tests blieben erfolglos :-(
Wenn du nicht weißt, von welcher Kodierung in welche du kodieren musst bleibt das alles nur ein Glücksspiel.
echo "$verabschiedung $name";