echo $begrüßung;
Dabei hilfreich wäre der meta-tag:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
,
oder bei xHTML Dokumenten der Prolog
<?xml version="1.0" encoding="utf-8"?>
Ein kurzer Versuch mit XML-Prolog auf UTF-8 und dem Meta-Element auf ISO-8859-1 gestellt, dazu einen HTTP-Content-Type "text/html" ohne charset-Zusatz, ergibt im Firefox ISO-8859-1. Der XML-Prolog ist da also nicht maßgebend, so wie es aussieht.
Was aber auf alle Fälle Vorrang hat ist der charset-Zusatz im HTTP-Header Content-Type.
- Nachdem die Datenbankverbindung hergestellt wurde, definierst Du den Charset für die Verbindung explizit auf utf8. Je nach MySQL Version mit:
mysql_set_charset("utf8", [ressource $db_link)
Das ist auch von der PHP-Version abhängig. Erst seit 5.2.3 gibt es diese Funktion. Das mysqli-Pendant dazu gibt es schon seit Version 5.0.5. Mit der 4er Reihe von PHP bleibt aber nur SET NAMES (besser: Umsteigen auf 5).
oder bei älteren Version (<5 glaube ich)
mysql_query("SET NAMES utf8", [ressource $db_link);
Konkret: MySQL 5.0.7 und 4.1.13. Diese alten Versionen sollte man in freier Wildbahn aber nicht mehr antreffen. Allerdings gibt es noch 4.0 und gelegentlich 3.x, die komplett ausgeschlossen sind.
- Beim erstellen der Tabellen gibst Du auch deren Charset an, z.B.:
Das ist nur ein Default-Wert für Felder, deren Kodierung nicht explizit angegeben wurde. Jedes Feld kann seine eigene Kodierung und/oder Kollation haben. Und die ist am Ende maßgebend.
echo "$verabschiedung $name";