La tecla de acceso 'n' lleva a la navegación de la página. Ir al inicio del contenido.

Este documento es una traducción. En caso de discrepancias o errores, la única versión normativa es el último original en inglés. Los derechos de autor originales corresponden al W3C, como puede verse al final de la página.

Traductor: Spanish Translation Team, Spanish Translation US.

s_gotoW3cHome Internacionalización
 

Codificación de caracteres para principiantes

Audiencia de destino: autores de contenidos, usuarios y todas aquellas personas que no estén seguras del significado de la codificación de caracteres y que deseen obtener un breve resumen acerca de cómo les afecta.

Traducción actualizada el: 2011-04-18 20:47

Pregunta

¿Qué es la codificación de caracteres y por qué es importante?

Respuesta

Primero, ¿por qué es importante?

Si utiliza otro carácter diferente a la mayoría de los caracteres básicos necesarios para el idioma inglés, es posible que no se pueda leer su texto a menos que especifique la codificación de caracteres que utilizó.

Por ejemplo, es posible que quiera que el texto se vea de esta manera:

mojibake1.gif

pero en realidad aparecerá de esta manera:

mojibake2.gif

La información de codificación inadecuada no sólo perjudica la capacidad de lectura de un texto que se visualiza, sino que, además, puede significar que sus datos no se encuentren en una búsqueda o que no se puedan procesar de manera confiable de diversas formas.

Entonces, ¿qué es la codificación de caracteres?

Las palabras y las oraciones de un texto se crean a partir de caracteres. Algunos ejemplos de caracteres incluyen la letra latina á, el ideograma chino o el carácter devanagari .

Es posible que no pueda ver algunos de los caracteres en esta página debido a que no cuenta con las fuentes necesarias. Si hace clic en el lugar donde esperaba ver un carácter, obtendrá un enlace a una versión gráfica. Esta página está codificada en UTF-8.

Los caracteres se agrupan en unset de caracteres (también denominados repertorio). Luego, se denomina un set de caracteres codificados cuando a cada carácter se le asigna un número en particular, denominado punto de codificación. Estos puntos de codificación se representarán en la computadora por uno o más bytes.

Básicamente, significa que todos los caracteres están almacenados en computadoras con un código, al igual que los cifrados utilizados en espionaje. La codificación de caracteres es la llave que abre (es decir, descifra) el código. Es un set de mapeos entre los bytes que representan los números en la computadora y los caracteres ubicados en el set de caracteres codificados. Sin la llave, los datos parecen garabatos.

El confuso término charset con frecuencia se utiliza para referirse a lo que realmente son las codificaciones de caracteres. Debe conocer esta utilización; sin embargo, continúe con la utilización de codificaciones de caracteres de términos cada vez que sea posible.

Desafortunadamente, existen muchos sets de caracteres y codificaciones de caracteres diferentes, es decir, muchas maneras diferentes de mapear entre bytes, puntos de codificación y caracteres. El panel que se muestra a continuación proporciona más información para aquellos que estén interesados.

Por ejemplo, en el set de caracteres codificados denominado ISO 8859-1 (conocido además como Latín1), el valor del punto de codificación decimal para la letra é es 233. En ISO 8859-5, el mismo punto de codificación representa el carácter cirílico щ. Estos sets de caracteres contienen menos de 256 caracteres y mapean los puntos de codificación a los valores de bytes directamente. Es por eso que el punto de codificación con valor 233 se representa por un único byte con valor 233. Sin embargo, recuerde que ese byte puede representar é o щ, en función del contexto.

Existen otras maneras de manejar caracteres a partir de una extensión de scripts. Por ejemplo, con el set de caracteres Unicode, podrá representar ambos caracteres en el mismo set. En realidad, Unicode contiene, en un único set, la mayoría de los caracteres que probablemente necesite alguna vez. Mientras que el valor 233 aún representa el carácter cirílico é, el carácterщ ahora tendrá un valor de punto de codificación de 1097. Es un número demasiado grande para ser representado por un único byte*. Si utiliza la codificación de caracteres para el texto Unicode denominado UTF-8, щ estará representada por dos bytes; sin embargo, el valor del punto de código no deriva simplemente del valor de los dos bytes empalmados; será necesaria una decodificación más complicada. Otros caracteres Unicode se mapean con uno, tres o cuatro bytes en la codificación UTF-8.

UTF-8 es la manera más utilizada de representar el texto Unicode en las páginas web. Sin embargo, UTF-8 es sólo una de las maneras posibles de codificar caracteres Unicode. En otras palabras, un único punto de código en el set de caracteres Unicode se puede, en realidad, mapear a diferentes secuencias de bytes, en función de la codificación que se utilizó para el documento. Los puntos de codificación Unicode se pueden mapear a bytes mediante una de las codificaciones denominadas UTF-8, UTF-16 o UTF-32. El carácter devanagari, con punto de codificación 2325 (el cual es 915 en la anotación hexadecimal), estará representado por dos bytes cuando utilice la codificación UTF-16 (09 15), tres bytes con UTF-8 (E0 A4 95) o cuatro bytes con UTF-32 (00 00 09 15).

* La mayoría de los bytes de la actualidad se componen de 8 bits. Existen sólo 28 (es decir, 256) maneras exclusivas de combinar 8 bits.

Recuerde que los números de puntos de codificación comúnmente se expresan en anotación hexadecimal, es decir, base 16. Por ejemplo, el 233 en la forma hexadecimal es E9. Los valores de puntos de codificación de Unicode generalmente se escriben en la forma U+00E9.

Pueden existir mayores complicaciones además de las descriptas precedentemente (por ejemplo, el orden de los bytes y las secuencias de escapes); sin embargo, aquí se describe el motivo por el cual es importante que la aplicación con la que trabaje sepa qué codificación de caracteres es la apropiada para sus datos y que sepa de qué manera manejar esa codificación.

Sin embargo, la mayoría de las veces no necesitará conocer los detalles. Sólo necesitará asegurarse de que tenga en cuenta los consejos de la sección ¿De qué manera me afecta? que aparece a continuación.

¿De qué manera encajan las fuentes?

Una fuente es la colección de definiciones de glifos, es decir, definiciones de formas que se utilizan a fin de mostrar caracteres.

Una vez que su aplicación haya descifrado los caracteres con los que trata, buscará luego los glifos en las fuentes a fin de mostrar o imprimir esos caracteres. (Por supuesto, si la información codificada era incorrecta, buscará glifos para los caracteres erróneos).

En general, una fuente en particular cubrirá un único set de caracteres o, en el caso de un set de caracteres más amplio como Unicode, sólo un set secundario de todos los caracteres de ese set. Si la fuente no tiene un glifo para un carácter en particular, existen algunas aplicaciones que buscan el carácter faltante en otras fuentes de su sistema (lo que significará que el glifo se verá diferente al texto circundante, como una nota de rescate). De otra manera, generalmente verá en su lugar un recuadro, un signo de interrogación o algún otro carácter. Por ejemplo:

mojibake3.gif

¿De qué manera me afecta?

En su rol de autor o desarrollador de contenidos, necesita elegir la mejor codificación de caracteres para sus contenidos o datos. Las codificacionesUnicode son frecuentemente una buena opción en estos casos debido a que puede utilizar una única codificación a fin de manejar la mayoría de los caracteres que posiblemente encuentre. Esto simplifica las cosas ampliamente. Si utiliza Unicode en todo su sistema, además eliminará la necesidad de búsqueda y de conversión entre las diversas codificaciones de caracteres.

Los autores de contenidos necesitarán controlar en qué codificación guarda el texto el editor o el script y la manera de guardar el texto con la codificación que desee. Sin embargo, recuerde que el hecho de simplemente declarar una codificación diferente no cambiará los bytes; necesita ademásguardar el texto en esa codificación.

Los autores de contenidos deben, además, saber la manera de declarar la codificación de caracteres que utilizan para el formato de documentos con el que están trabajando. Es posible que también deba verificar que su servidor ejecute los documentos con las declaraciones de HTTP correctas.

Los desarrolladores deben asegurarse de que las diversas partes del sistema se puedan comunicar entre sí, que comprendan las codificaciones de caracteres que se utilizan y que admitan todas las codificaciones y los caracteres necesarios.

Los siguientes enlaces brindan más información acerca de estos temas.

A propósito

El artículo Codificación de caracteres: Conceptos básicos vale la pena leerlo en este punto, ya que brinda introducciones a los temas relacionados, como Unicode, UTF-8, sets de caracteres, sets de caracteres codificados y codificaciones, set de caracteres de documento, escapes de caracteres y encabezado del HTTP.

Dinos qué piensas (en Inglés).

Suscripción a feed RSS.

Nuevos recursos

Noticias de la página de inicio

Twitter (Noticias de la página de inicio)

‎@webi18n

Lecturas complementarias

De: Richard Ishida, W3C. Traductor: Spanish Translation Team, Spanish Translation US..

XHTML 1.0 válido
CSS válido
Codificado en UTF-8

Traducido del inglés con fecha 2010-09-08. Traducción modificada por última vez el 2011-04-18 20:47 GMT.

Para ver el historial de cambios del documento, busque qa-what-is-encoding en la bitácora de internacionalización.