Caracteres extraños en acentos o símbolos

La solución universal para este tipo de problema es tener todo con codificación utf8. Este articulo repasa cinco puntos que debes de tener en cuenta para no tener problemas de codificación.

Los archivos con codificación uf8 sin bom

Todos los archivos que componen el proyecto tienen que tener codificación utf8 sin bom.

¿Como sabemos la codificación de un archivo? Hay muchas formas pero una de ella es abriendo el archivo con el notepad++ en la barra inferior podemos ver la codificación, tiene que salir UTF-8

Las páginas que genera la aplicación con charset utf8

Todas las páginas que genera la aplicación tienen que tener charset utf8 en el head.

Para ver si el charset esta correcto solo tenemos que inspeccionar el código fuente. Se suele indicar al inicio de la etiqueta head en documento html como en el siguiente ejemplo:

<!DOCTYPE html>
<html id="html" lang="es">
<head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Mi web</title>

La conexión a base de datos con charset utf8

Si tu aplicación usa base de datos para guardar la conexión a esta se debe de configurar con el charset utf8. Hay varias formas de iniciar una conexión y cada una tiene su forma de configurar, voy a poner ejemplos de las 2 mas usadas, mysqli y pdo:

<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "test");
// Justo después de abrir la conexión establecemos el charset a utf8
$mysqli->set_charset("utf8")
?>

Los esquemas con charset en utf8mb4 y collate en utf8mb4_unicode_ci

Podemos saber estos valores con la siguiente consulta:

SELECT * FROM information_schema.SCHEMATA WHERE schema_name = "nombre_esquema" 

Las tablas de cada esquema con collation utf8mb4_unicode_ci

Podemos consultar el cotejamiento de cada tabla desde phpmyadmin:

2 comentarios

  1. Hola.
    Cuando entro en tu código fuente (view-source:https://gragot.com/php/caracteres-extranos-en-acentos-o-simbolos/) veo perfectamente las tildes y las «ñ».
    Sin embargo, cuando entro en el código fuente de mi blog (view-source:https://milviatges.com/2015/que-hacer-y-ver-en-budapest-en-3-dias/) todas las tildes y «Ñ» salen raros (ó por ejemplo).
    1. Cómo puedo hacer para que salgan las tildes en el código fuente?
    2. Influye esto en el posicionamiento de Google?
    Gracias de antemano

    • admin

      8 septiembre, 2020 a las 09:39

      Hola Jordi,

      Acabo de ver el código fuente de blog pero no cosas raras en en caracteres como la «ñ», se me ven correctamente. ¿Lo has corregido?

      Un saludo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *