blog webempresa

Resolver problemas de codificación de caracteres

por | Ago 27, 2020 | Aprender WordPress

Resolver problemas de codificación de caracteres

En ocasiones habrás observado que alguna página web se muestra con caracteres extraños, más que caracteres son símbolos sin ningún sentido. Quizás hayas visto alguna web que muestra correctamente los acentos, o las eñes.

Esto es debido a que el navegador no ha sabido obtener correctamente la codificación del documento que se ha descargado del servidor Web, y por tanto no codifica el texto de forma correcta y se visualiza mal.

Básicamente existen 2 formas de especificar la codificación del texto:

A través de etiquetas de una de las cabeceras HTTP más comunes como es la cabecera HTTP Content-type y a través de la etiqueta Meta de estas 2 formas:

  • <meta charset=”utf-8″ /> (HTML 5)
  • <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /> (HTML 4)

Estas son las 2 formas mediante las que editores del blog y/o administradores del servidor, podemos especificar la codificación de los contenidos y evitar problemas de codificación de caracteres.

Básicamente la cabecera HTTP Content-Type indica al navegador que el administrador del servidor web, creé que el contenido está codificado en UTF-8 (o el que le indiques), y la etiqueta Meta,  le indica que el autor del documento HTML creado, creé que el contenido está codificado en UTF-8 (o el que le indiques en la etiqueta). Normalmente la opinión del administrador del servidor cuenta más y por esto le da prioridad.

Normalmente, siempre tendremos que codificar en UTF-8, ya que es lo más extendido y compatible con todos los lenguajes. Sin embargo si el servidor o el blog no están correctamente configurados, es posible que tener problemas de codificación.

La forma en que el navegador determina la codificación de los contenidos cuando recibe una respuesta del servidor, es por este orden:

  1. Si el navegador tiene configurado que siempre muestre el contenido en una codificación en exclusiva, usará esa que el usuario final haya configurado en su navegador.
  2. La que se especifica en la Cabecera HTTP Content-Type.
  3. Ejecuta un algoritmo leyendo los caracteres del contenido de la respuesta de los primeros 1024 bytes para ver si es capaz de determinar la codificación.
  4. Lee la etiqueta Meta con atributo “charset”.
  5. Lee la etiqueta Meta con atributo “http-equiv” establecido como “Content-Type”, y luego lee el valor del atributo “charset”.
  6. Si nada de lo anterior es positivo, utiliza un método propio para determinar la codificación.

Si no tienes problemas con los caracteres de la web, casi con total seguridad puedes obviar esto, pero si en tu web no se muestran correctamente los caracteres con acentos o eñes (por ejemplo), revisa las cabeceras Content-Type de la respuesta HTTP y la etiqueta Meta con atributo Charset y establece ambas a UTF-8.

Para establecer la cabecera HTTP Content-Type, puedes añadir este código al fichero .htaccess de tu web:
 

<IfModule mod_headers.c>
Header set Content-Type "text/html; charset=UTF-8"
</IfModule>

 

La etiqueta Meta Charset, tendrás que buscarla en el fichero header.php del theme de WordPress que estés usando, y si no está establecida, tendrás que crearla para que conste.

 

¿Te ha resultado útil este artículo?

Promo hosting marzo webempresa