echo $begrüßung;
Zweitens erfordert mysql_real_escape_string() eine bestehende MySQL-Verbindung, denn deren aktuelle Zeichencodierung fließt mit in das Ergebnis ein.
Weil du das gerade so erwähnst: Wusstest du, dass das Setzen der aktuellen Verbindungskodierung mittels Absetzen eines SET NAMES-Statements keinen Einfluss auf die von mysql_real_escape_string() verwendete Kodierung hat? In der Tat lässt sich dieses Problem nur mit mysqli lösen, indem man die Funktion mysqli_set_charset() verwendet. Siehe http://dev.mysql.com/doc/refman/5.0/en/mysql-set-character-set.html.
Andererseits ist das für die hierzulande verbreiteten Kodierungen ISO-8859-x und UTF-8 kein wirkliches Problem, denn für diese gibt es keinen Unterschied zwischen mysql_real_escape_string() und mysql_escape_string(). Die betroffenen Zeichen NUL, \n, \r, , ', " und Control-Z sind in diesen Kodierungen eineindeutigen Bytewerten zugeordnet. Ich fand nur in einer der asiatischen Kodierungen dass zumindest eins der Bytes dieser Zeichen auch in einem Multi-Byte-Zeichen auftauchte. Und in dem Fall muss man dann die Zeichenkodierung berücksichtigen, denn dann darf dieses Byte nicht maskiert werden.
echo "$verabschiedung $name";