Antes da consulta tente:
mysql_query("SET NAMES 'utf8'", $conn);
*edições *
Aparentemente, dependendo da versão do MySQL, você também pode ser obrigado a usar:
mysql_query("SET CHARACTER SET utf8", $conn);
Uma observação final, o banco de dados precisa estar usando o conjunto de caracteres UTF-8, para garantir isso:
ALTER <database_name> DEFAULT CHARACTER SET utf8;
*Mais edições *
Depois de ler suas edições, acho que isso é um problema com sua codificação HTML/PHP. Na página que envia os caracteres, certifique-se de definir os cabeçalhos corretamente:
header('Content-Type: text/html; charset=UTF-8');
Você também deve definir isso por meio de metatags:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Em seguida, defina a codificação multibyte com o
mb_internal_encoding()
função:mb_internal_encoding("UTF-8");
Por padrão, o PHP usa ISO-8859-1.