Percebo que você está executando esta consulta...
mysql_query('SET CHARACTER SET utf8');
Tente mudar isso para isso...
mysql_query("SET NAMES 'utf8'");
Isso deve garantir que a conexão seja UTF-8.
Tente também passar pela lista de itens deste artigo... http:/ /blog.loftdigital.com/blog/php-utf-8-cheatsheet
Isso lista as etapas necessárias para garantir que você esteja usando o UTF-8 da frente para trás em seu site/aplicativo, mas em resumo:
- Verifique se você tem a extensão mbstring do PHP e tem
mb_internal_encoding('UTF-8');
definido em seu script. - Certifique-se de estar executando esta consulta MySQL após conectar-se ao seu banco de dados
mysql_query("SET NAMES 'utf8'");
que garante que a conexão seja UTF-8. - Defina o cabeçalho HTTP da sua saída...
header('Content-type: text/html; charset=UTF-8');
. Isso não parece ser necessário se você configuroumb_internal_encoding()
acima, mas útil para depuração - Certifique-se de que a codificação de saída de sua página HTML esteja definida...
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />