Codificación de caracteres

De Seobility Wiki
Saltar a: navegación, buscar

¿Qué es la codificación de caracteres o Character Encoding?

Para poder mostrar letras, números y símbolos, una computadora u ordenador necesita disponer de un repertorio de caracteres que esté dispuesto y numerado en un orden específico. Este repertorio se denomina conjunto de caracteres.

Ahora bien, para que las computadoras reconozcan estos caracteres correctamente deben codificarlos. Es aquí donde entra en juego la codificación de caracteres, a saber; un método que permite convertir cada letra, número o símbolo del lenguaje natural (por ejemplo, del alfabeto) en un idioma que las computadores entiendan, en este caso en un patrón de bits que sigue una secuencia y numeración específicas.

Comprobar la Codificación de Caracteres

Verifica la Codificación de Caracteres de tu web

Así pues, la codificación de caracteres es relevante para los documentos HTML porque estos se guardan siempre con un tipo específico de codificación de caracteres. Esto permite una asignación única de letras, números y símbolos de un conjunto de caracteres a cada documento.

De esta forma, cuando accedemos a una página, esta envía toda la información sobre la forma de codificación a los navegadores u otros user agents para que puedan interpretar los bytes correctamente y mostrar los caracteres adecuados. Cabe mencionar que si la codificación de caracteres declarada no coincide con la realmente utilizada, los navegadores no pueden mostrar el contenido de un sitio web y los buscadores tampoco pueden indexar ni retornar esas páginas webs como resultado de una búsqueda.

¿Por qué son necesarios diferentes juegos de caracteres?

La selección de un conjunto de caracteres específico determina el rango de caracteres que se pueden usar en una página web. Las letras latinas básicas rara vez son un problema, pero algunos idiomas requieren más letras que otros o utilizan caracteres especiales como puntos, virgulillas, guiones, círculos o arcos por encima o por debajo de las letras.

Esto puede generar problemas si se requiere un carácter que no se puede representar con la codificación seleccionada. En este caso, se debe utilizar una paráfrasis simbólica (referencia de entidad) en el código HTML. Por ejemplo, la referencia de entidad © representa el símbolo ©.

Las referencias a entidades comienzan con un "&" y terminan con un punto y coma ";". Si bien, el uso de referencias suele funcionar relativamente bien, es un procedimiento que requiere el uso de más bytes y complica el marcado.

¿Qué codificación elegir?

El conjunto de caracteres US-ASCII es suficiente para un sitio web en inglés si no se requiere una puntuación tipográficamente correcta, como sería el uso de comillas tipográficas.

Para otros idiomas europeos como el alemán, el francés o el español, el conjunto de caracteres ISO 8859-1 es el más adecuado y utilizado en Europa Occidental, mientras que el polaco, el checo y el griego, por ejemplo, aplican una versión diferente de ISO 8859, la ISO 8859-2.

Por otra parte, para codificar caracteres hebreos, árabes y orientales en una página web se recomienda seleccionar UTF-8, es decir, un Formato de transformación UCS - 8 bits, donde UCS es la abreviatura de Juego de caracteres universal.

En esta línea, UTF-8 se ha convertido en la codificación de caracteres más recomendada y utilizada. Emplea la tabla de códigos del sistema Unicode, que contiene los caracteres y elementos de todas las fuentes culturales determinadas por los lingüistas. Por este motivo, UTF-8 es el juego de caracteres más usado en Internet y siempre debe ser la primera opción a elegir.

¿Cómo especificar la codificación de caracteres en un documento?

Especificando la codificación de caracteres
Imagen: Codificación de caracteres - Autor: Seobility - Licencia: CC BY-SA 4.0

Una vez elegida la codificación más apropiada, hay que asegurarse de que se transmita la información correcta tanto a los navegadores como también a los motores de búsqueda. Como ya se mencionó, en cada documento HTML se debe especificar la codificación de caracteres empleada y para ello se pueden utilizar los encabezados HTTP o el código HTML.

Especificación en el encabezado HTTP

Las páginas web se entregan a través del Protocolo de transferencia de hipertexto (HTTP). Los navegadores envían una solicitud a través de HTTP y los servidores envían una respuesta usando la misma vía.

Esta respuesta consta de dos partes: el encabezado (header) HTTP y el cuerpo o contenido (body), estando separados entre sí por una línea en blanco. Los encabezados proporcionan información sobre el cuerpo, el cual a su vez contiene el recurso solicitado que generalmente es un documento HTML. Y así, el servidor web envía esta información sobre la codificación del documento a través del encabezado Content-Type :

Content-Type: text/html; charset=utf-8

Especificación en el código HTML

Si se desea proporcionar el equivalente HTTP en código HTML, se puede usar un metaelemento en la sección cabecera del documento:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Alternativamente, se puede usar el siguiente metaelemento en el código HTML:

<meta charset="utf-8">

Vamos a verlo con el siguiente ejemplo:

Codificación de caracteres

Captura de pantalla con codificación de caracteres en código HTML de seobility.net.

Con todo, sin embargo, hay que considerar que cada encabezado HTTP sobrescribe un metaelemento en el código HTML, razón por la cual el servidor web debe configurarse correctamente.

Por ejemplo, para un servidor Apache, se debe escribir el siguiente código en el archivo de configuración:

AddDefaultCharset UTF-8

Para XML se debe especificar la codificación en el encabezado de su archivo. XML solo admite UTF-8 y UTF-16, lo que simplifica enormemente la selección:

<?xml version="1.0" encoding="utf-8"?/>

En resumen

La elección de una codificación de caracteres adecuada es esencial para asegurar que un sitio web se muestre correctamente.

Si declaras un conjunto de caracteres incorrecto para tu sitio web, como por ejemplo el ISO 8859-1 para una página en chino, tendrías que ingresar muchas entidades en el código HTML, lo que aumentaría innecesariamente el tamaño del archivo.

Lo ideal es utilizar UTF-8 para cualquier tipo de sitio web, siendo que UTF-8 y la serie ISO 8859 son compatibles con todos los navegadores web modernos. La mayoría de estos también admiten otras codificaciones, pero de elegir una inusual, se corre el riesgo de que tanto visitantes como los buscadores no puedan leer su contenido.

También es importante recordar que todo documento HTML debe incluir un elemento que indique el juego de caracteres utilizado.

Ampliar conocimientos

Sobre las autoras y autores:
Seobility S
El equipo de Seobility Wiki está formado por expertas y expertos SEO, profesionales del marketing digital y especialistas en negocios con experiencia en SEO, marketing online y desarrollo web. Todos nuestros artículos pasan por un proceso editorial de varios niveles para proporcionarte la mejor calidad posible e información relevante y de utilidad. Conoce a la gente que hay detrás de la Wiki de Seobility.