Peut-être que l'erreur réside dans le jeu de caractères avec lequel vous servez la page. Si vous extrayez du contenu UTF-8 de la base de données et que vous le servez avec le jeu de caractères HTML par défaut de Windows-1252, il aura l'air brouillé. Assurez-vous d'avoir l'équivalent de ceci :
header( 'Content-Type: text/html; charset=utf-8' );
dans votre code PHP.