Hi!
Wo genau stelle ich denn den das "set names" ein - im php-script, in der Datenbank?
Dein PHP-Script unterhält eine Vebindung zum MySQL-Server. Um darüber Daten auszutauschen muss bekannt sein, welche Kodierung verwendet werden soll. Wenn du das nicht explizit nach dem Öffnen der Verbindung machst, nimmt MySQL einen Default-Wert, der bei dir vermutlich Latin1 lautet. mysql_set_charset(), mysqli_set_charset() oder ein Statement mit SET NAMES utf8 schafft für beiden Seiten Klarheit. Die erstgenannten Funktionen sind gegenüber dem SET NAMES vorzuziehen, da sie auch die Kodierung von Funktionen wie mysql_real_escape_string() beeinflussen. Das ist bei ISO-8859-1 und UTF-8 nicht weiter wichtig, weil sich damit nichts ändert, aber bei mindestens einer der ostasiatischen Kodierungen hat das Auswirkungen.
siehe http://www.beko.de/deutsch/produkte/download_manager/dok_search_jp.php
Hier offenbart sich eine vermutlich Unachtsamkeit deinerseits. Der Webserver sendet in seinem HTTP-Header Content-Type als charset-Angabe UTF-8, dein gleichnamiges Meta-Element allerdings sagt shift-jis. Da der HTTP-Header Vorrang vor dem Meta-Element hat, wirst du später beim lokalen Speichern der Webseite ein Problem bekommen, denn wenn ein Browser diese gespeicherte Seite anzeigen soll, hat er nur noch diese Meta-Element-Angabe.
Lo!