Avant la requête, essayez :
mysql_query("SET NAMES 'utf8'", $conn);
*modifications *
Apparemment, selon la version de MySQL, vous devrez peut-être également utiliser :
mysql_query("SET CHARACTER SET utf8", $conn);
Une dernière note, la base de données doit utiliser le jeu de caractères UTF-8, pour garantir cela :
ALTER <database_name> DEFAULT CHARACTER SET utf8;
*Autres modifications *
Après avoir lu vos modifications, je pense que c'est un problème avec votre encodage HTML/PHP. Sur la page de soumission des caractères, assurez-vous de définir correctement les en-têtes :
header('Content-Type: text/html; charset=UTF-8');
Vous devez également le définir via des balises méta :
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Définissez ensuite l'encodage multioctet avec le mb_internal_encoding()
fonction :
mb_internal_encoding("UTF-8");
Par défaut, PHP utilise ISO-8859-1.