¿Qué significa la codificación de caracteres (charset)?

Enlaces patrocinados:

Las computadoras solamente entienden a los números. Lo que tu ves en la pantalla cómo letras o imágenes en realidad es información transmitida a través de internet con códigos numéricos que la computadora recibe en grupos de dígitos binarios (unos y ceros).

Para que la computadora pueda interpretar estos números, necesitamos definir una unidad mínima que sea capaz de transportar cierto tipo de información. Cuando estamos trabajando con texto cada letra es un “caracter”. Esto es un concepto algo abstracto.

Luego necesitamos definir un juego de los caracteres que vamos a utilizar. Un charset es un juego de caracteres abstractos que ponemos a nuestra disposición. En el HTML, el juego de caracteres extándar es el ISO 10646, el cual es virtualmente lo mismo que Unicode. Es un conjunto de más de diez mil caracteres que representan la mayoría de los idiomas escritos en el planeta.

A la apariencia visual de un caracter se la conoce cómo glyph. Y a un conjunto de glyphs se le conocen cómo fuente. El glyph para la “A mayúscula” va a ser diferente para las demás letras.

Al principio de la era de la comunicación por las computadoras eran utilizados solamente muy pocos caracteres, que contenian solamente los caracteres necesario para cierto idioma. El juego de caracterés más conocido es el ASCII (ISO 646), el cual solo contiene 128 caracteres, 33 de los cuales no son imprimibles y son llamados “códigos de control”. El jusgo de caracteres. La codificación es muy simple: por ejemplo para la “A mayúscula” es 65 (0×41), la cual se codifica cómo 65 (en binario 1000001).

¿Pero en que afecta todo esto a un creador de páginas web? Si utilizamos caracteres que están fuera del rango del código ASCII, la codificación se vuelve crucial. Si especificamos un jusgo de caracteres erroneo, la página se va a volver difícil o imposible de leer.

¿Cómo especificamos el juego de caracteres? La manera correcta es hacerlo a través de la propiedad del Header HTTP Content-Type:

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

Esto lo podemos hacer de varias formas, desde configurar nuestro servidor, por ejemplo en Apache lo hacemos desde el (httpd.conf) o con un archivo .htaccess. Pero si no tenemos acceso a nuestro servidor podemos hacerlo en cada uno de nustros documentos con PHP incluyendo al principio de nuestro archivo la siguiente línea para un juego de caracteres UTF-8:

header('Content-Type: text/html; charset=utf-8');

Tambien podemos especificarlo con HTML simple con la siguiente etiqueta:

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

Si usas esta etiqueta meta el documento ignorará el HTTP header original.

No existe un juego de caracteres por defecto para el HTML por eso es necesario especificar uno.

En mi caso prefiero utlizar el UTF-8, que es compatible con la mayoría de los idiomas. Pero es recomendable investigar si el juego de caracteres que utilizas soporta el idioma que escribes.

Este post es para responder una de las preguntas de las 37 preguntas un desarrollador y diseñador web debe saber responder.

Enlaces patrocinados:
Enlaces patrocinados:
Enlaces patrocinados:

5 Comentarios (Agrega el tuyo)

  1. Comentado 19 de Julio de 2007 a las 9:33 AM | Permalink | Responder ↓

    Muy bueno tu comentario, sin embargo sigo presentando problemas al momento de inserción de los registros en mi tabla MYSQL ….

    Estoy utilizando:
    content=”text/html; charset=utf-8″ // En la pagina
    latin1_bin, en la base de datos y tablas.
    utf8_encode() y utf8_decode(), Para atrapar los datos y mostrarlos.

    Pero sigo teniendo problemas , en mi caso son las apostrofes …Mysql no los reconoce…

    Que otra configuracion adicional se podra colocar ??

  2. Comentado 30 de Septiembre de 2008 a las 4:30 PM | Permalink | Responder ↓

    hola guapoo

  3. Comentado 30 de Septiembre de 2008 a las 4:31 PM | Permalink | Responder ↓

    que haces o que no quieres hablar con migo

  4. Comentado 1 de Octubre de 2008 a las 7:36 PM | Permalink | Responder ↓

    ESTA BUENA TODA LA INFOTMACION PERO SOLO LE FALTA ALGO QUE ESPLIQUE LAS SIGLAS ASCII

Escribe un Comentario

Su correo nunca será publicado ni compartido. Los campos requeridos están marcados *

*
*

La moderación de comentarios está activada. Su comentario podría tardar cierto tiempo en aparecer.

Trackbacks a este artículo: (URL del trackback)

  1. Por Hello World! reloaded | Mangas Verdes en 14 de Octubre de 2007 a las 7:27 AM

    [...] la hora de ejecutar el ‘upgrade’ surgieron numerosos errores de incompatibilidad con el charset. No aceptaba ni el charset ‘latin1′ ni el collate ‘utf-8′ que tenía [...]

Estudios Kurin - Técnicas de video y fotografía

Preguntas realizadas por los usuarios:

PROPIEDAD content=texthtml;charset=utf-8meta http equiv significadoq significa la sigla ASCllq significa la codificacion asciicharset for webphp no reconoce caracteres especiales utf8mysql charset caractersaber el charset del servidorimportancia codificacion de caracterestabla codificacion de caracteres especiales Charset, Que significa caracteres, Que significa ascii, Que es charset, QUE SIGNIFICa las siglas ASCII, Que significa la palabra caracteres, los caracteres http. ¿Que significan?, Que se ignifica carlos, Codificacion de caracteres mysql, Que significa tipear caracteres, Definicion de codificacion de datos, Charset=, QUE SIGNIFICA LA SIGLA ASCLL, Que significa caractres, Codificacion de la comunicacion, Que significa la sigla ASCII, Codigo ascll, Que significa codificacion, Codificacion de caracteres html, Caracteres, Que significan las siglas ASCII, Que significa la sigla codigos ascii, Q significa caracteres, Que significan las siglas del codigo ASCII, Que se inifica el codigo ascii, ¿Qué significa "caracteres no imprimibles" ctrl 10?, COMO CODIFICAR UN NUMERO DE SERIE, Caracter no imprimibles PHP, Concepto de codificacion de una computadora, Que significa asc11, Que significa caracter?, Definicion de codificacion en la comunicacion, Que significa num en codificacion php, Investigar que significa html en google, Que se inifica ascii, Que significa la sigla crea, Que es chirset, Descargar el codigo ascll, ¿qué es un caractere?, Codificacion caracteres mysql, Codigo asc11, Que es un charset, Codificacion caracteres php, Qie significa https para movil, Cómo saber el charset del servidor, Definir charset html, Que significan los caracteres http?, Codificar numeros binarios en php 5, carcteres especiales">Css carcteres especiales, Qué entendemos por caracteres,