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
- Código: Seleccionar todo
//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)
- Código: Seleccionar todo
<?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
- Código: Seleccionar todo
$test = utf8_encode("ñàèóñ");
echo utf8_decode($test);