Perche' tutti i caratteri appaiano correttamente, e' necessario che l'encoding sia corretto per tutto il tragitto che i dati fanno. Quindi e' fondamentale che siano verificati tutti questi punti:

- i dati originari siano codificati in utf8
- la tabella in cui vengono registrati abbia campi con encoding utf8
- (punto fondamentale quasi sempre mancante) deve essere impostato come utf8 l'encoding della connessione con il database: es. http://php.net/manual/en/function.mysql-set-charset.php
- deve essere specificato l'encoding utf8 tramite meta tag nella pagina HTML con l'output finale

se anche uno solo di questi punti manca, allora i caratteri non potranno essere visualizzati correttamente.