Allerdings bleibt noch ein kleines Problem: € so sieht das Eurozeichen im Quelltext aus und wird von meiner Überprüfung irgendwie ignoriert.
Du kannst nicht einfach "utf-8" sagen und erwarten, dass alles funktioniert. Unicode ist kein Heilmittel für bereits verbockte Daten, Unicode sorgt nur dafür, dass sowas nicht erst auftritt.
Du wirst schon wo nötig die existierenden Daten (inklusive PHP-Quellcodes) in utf-8 umwandeln und fremde Funktionen (von PHP zum Beispiel) auf utf-8 hinweisen müssen. Bei der Umwandlung solltest Du damit rechnen, hier und da auf falsch gekennzeichnete Kodierungen zu stoßen (windows-1252 wird gern und viel als iso-8859-1 ausgegeben, obwohl sie sich an ca. 40 Stellen unterscheiden).
Ich schrieb bereits: Problemlos läuft es nur, wenn man es von Anfang an richtig macht. Der Umbau existierender Applikationen kann mühsam sein, gar keine Frage.
Und können bei UTF-8 Probleme mit Datenbanken auftreten?
Wenn die Datenbank kein utf-8 kann, wird die Sortierung an Zeichen außerhalb ASCII möglicherweise nicht so funktionieren, wie Du es gewohnt bist. Das Problem habe ich bereits anhand von htmlentities() beschrieben.
Irreparablen Datenmüll, Abstürze oder Ähnliches wird es aber nicht geben, denn dies zu verhindern ist der eigentliche Sinn von utf-8 (utf-8 ist eine Methode, die 32-Bit-Werte von Unicode unfallfrei in herkömmliche 8-Bit-Werte zu verpacken).
Ich frage mich warum das Eurozeichen hier im Quelltext auch ein solches bleibt... :|
Vermutlich weil von vorne bis hinten und Anfang bis Ende nur Unicode verwendet wird.
Vielleicht schilderst Du einfach mal die noch existierenden, konkreten Probleme mit Beispielseite und dazugehörendem PHP-Quellcode und sagst, was Du bereits unternommen hast. Nur mit der Aussage "Sieht wie A aus, soll aber B sein!" oder gar "Geht nicht!" ist es immer etwas sehr schlecht.