Eu mesmo recentemente tive os mesmos problemas.
Aqui estão algumas indicações:
- TODOS os atributos devem ser definidos como ut8 (collation NÃO é o mesmo que charset)
- Salve o documento como UTF-8 (se você estiver usando o Notepad++, é Formato -> Converter para UFT-8)
- O cabeçalho em PHP e HTML deve ser definido como UTF-8 (HTML:
e PHP:
header('Content-Type:text/html; charset=utf-8');
- Ao se conectar ao banco de dados, defina o charset ti UTF-8 lá também, assim:
$link->set_charset("utf8");
(diretamente após a conexão) - Certifique-se também de que seu banco de dados e tabelas estejam configurados para UTF-8, você pode fazer assim:
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Lembre-se de que TUDO precisa ser definido para o charcode UFT-8, ou então inserirá coisas como "Øسناً". Espero que isso tenha ajudado!