Prima della query prova:
mysql_query("SET NAMES 'utf8'", $conn);
*modifiche *
Apparentemente, a seconda della versione di MySQL, potrebbe essere necessario utilizzare anche:
mysql_query("SET CHARACTER SET utf8", $conn);
Un'ultima nota, il database deve utilizzare il set di caratteri UTF-8, per garantire questo:
ALTER <database_name> DEFAULT CHARACTER SET utf8;
*Altre modifiche *
Dopo aver letto le tue modifiche, penso che questo sia un problema con la tua codifica HTML/PHP. Nella pagina di invio dei caratteri assicurati di aver impostato correttamente le intestazioni:
header('Content-Type: text/html; charset=UTF-8');
Dovresti anche impostarlo tramite i meta tag:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Quindi imposta la codifica multibyte con mb_internal_encoding()
funzione:
mb_internal_encoding("UTF-8");
Per impostazione predefinita, PHP utilizza ISO-8859-1.