Si todo esta configurado de manera correcta, el error debe estar al guardar el archivo, a veces codificar el archivo de un archivo guardado con una codificación distinta y al cambiar su codificación nuevamente suele fallar. (Esto me ha sucedido)
La primera recomendación es que crees un nuevo archivo en blanco con una codificación de UTF-8 sin BOM
, y pegues en el, el código del antiguo archivo y lo guardes.
Yo vengo trabajando desde hace mucho tiempo con dos cotejamiento utf8_spanish_ci
y utf8_spanish2_ci
sin haber tenido algún error de caracteres imprimidos en simbolización �.
Otro detalle de tener siempre en cuenta es de cómo llamas los datos de la consulta, en la conexión de la base de datos debes agregar también utf8
usando set_charset
MySQLi
//cambiar el conjunto de caracteres a utf8
if(!$conexion->set_charset("utf8")){
printf("Error cargando el conjunto de caracteres utf8: %\n", $conexion->error);
exit();
}
No es que este mal el uso de utf8_encode
pero vas a tener que depender siempre de él, cuando el error se puede solucionar de raíz.
Otra manera de solucionar estos tipos de simbolización � es usando ISO-8859-1
(juego de caracteres)
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
àè ó ñ
</body>
</html>
He realizado pruebas, sin utilizar ningún editor de texto profesional, solo he usado el bloc de notas de windows, funciona sin problemas.
Si aún prefieres seguir usando este método
$test = utf8_encode("ñàèóñ");
echo utf8_decode($test);