Recientemente tuve los mismos problemas.
Aquí hay algunos consejos:
- TODOS los atributos deben establecerse en ut8 (la intercalación NO es lo mismo que el conjunto de caracteres)
- Guarde el documento como UTF-8 (si está usando Notepad++, es Formato -> Convertir a UFT-8)
- El encabezado tanto en PHP como en HTML debe establecerse en UTF-8 (HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
y PHP:header('Content-Type: text/html; charset=utf-8');
- Al conectarse a la base de datos, configure el juego de caracteres ti UTF-8 allí también, así:
$link->set_charset("utf8");
(directamente después de conectar) - También asegúrese de que su base de datos y tablas estén configuradas en UTF-8, puede hacerlo así:
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Recuerde que TODO debe configurarse en el código de caracteres UFT-8, o de lo contrario insertará cosas como "Øسناً". ¡Espero que esto haya ayudado!