Diferencia entre revisiones de «Codificación de caracteres»
Deshecha la edición 33948234 de 189.137.220.227 (disc.) |
|||
Línea 4: | Línea 4: | ||
== Normas de codificación == |
== Normas de codificación == |
||
Definen la forma en la que se codifica un carácter dado en un símbolo en otro sistema de representación. Ejemplos de esto son el [[código Morse]], la norma [[ASCII]] o la [[UTF-8]], entre otros. |
Definen la forma en la que se codifica un carácter dado en un símbolo en otro sistema de representación. Ejemplos de esto son el [[código Morse]], la norma [[ASCII]] o la [[UTF-8]], entre otros. |
||
=== ASCII === |
=== ASCII === |
Revisión del 19:11 15 feb 2010
La codificación de caracteres es el método que permite convertir un carácter de un lenguaje natural (alfabeto o silabario) en un símbolo de otro sistema de representación, como un número o una secuencia de pulsos eléctricos en un sistema electrónico, aplicando normas o reglas de codificación. Un ejemplo sencillo de codificación para la palabra "hello" puede verse aquí
Normas de codificación
Definen la forma en la que se codifica un carácter dado en un símbolo en otro sistema de representación. Ejemplos de esto son el código Morse, la norma ASCII o la UTF-8, entre otros.
ASCII
Por estar íntimamente ligado al octeto (y por consiguiente a los enteros que van del 0 al 127, el problema que presenta es que no puede codificar más que 128 símbolos diferentes (128 es el número total de diferentes configuraciones que se pueden conseguir con 7 dígitos binarios o digitales (0000000, 0000001,..., 1111111), usando el octavo dígito de cada octeto (bit o dígito de paridad) para detectar algún error de transmisión). Un cupo de 128 es suficiente para incluir mayúsculas y minúsculas del abecedario inglés, además de cifras, puntuación, y algunos "caracteres de control" (por ejemplo, uno que instruye a una impresora que pase a la hoja siguiente), pero el ASCII no incluye ni los caracteres acentuados ni el comienzo de interrogación que se usa en castellano, ni tantos otros símbolos (matemáticos, letras griegas,...) que son necesarios en muchos contextos.
ASCII Extendido
Debido a las limitaciones del ASCII se definieron varios códigos de caracteres de 8 bits, entre ellos el ASCII extendido. Sin embargo, el problema de estos códigos de 8 bits es que cada uno de ellos se define para un conjunto de lenguas con escrituras semejantes y por tanto no dan una solución unificada a la codificación de todas las lenguas del mundo. Es decir, no son suficientes 8 bits para codificar todos los alfabetos y escrituras del mundo.
Unicode
Como solución a estos problemas, desde 1991 se ha acordado internacionalmente utilizar la norma Unicode, que es una gran tabla, que en la actualidad asigna un código a cada uno de los más de cincuenta mil símbolos, los cuales abarcan todos los alfabetos europeos, ideogramas chinos, japoneses, coreanos, muchas otras formas de escritura, y más de un millar de símbolos especiales.
UTF-8
Es una norma de transmisión utilizada junto con la norma de codificación Unicode. Utilizadas en conjunto, funcionan de la siguiente manera:
- Unicode asigna los enteros del 0 al 127 (un total de 128) a exactamente los mismos caracteres que ASCII
- UTF-8 empaqueta cualquier entero del 0 al 127 en un octeto "a la antigua" pero con el octavo dígito siempre en cero, ya que actualmente el bit de paridad no se utiliza más para detección de errores
- Además, como la tabla de Unicode es tan grande, la mayoría de sus símbolos están asignados a enteros mayores que 127 (códigos que, en consecuencia, necesitan más que 7 dígitos para su representación binaria). En todos esos casos, UTF-8 envía el comienzo de la representación binaria del código en cuestión en un primer octeto con dígito de paridad = 1
- El receptor de este mensaje, interpreta este dígito en 1 como señal de que lo que está siendo transmitido es un código que no cabe en 7 dígitos binarios; y por tanto determina que el símbolo no lo va a conocer mientras no lea el siguiente octeto, y tal vez el que sigue. En el peor de los casos, quizás se haga necesario leer seis octetos consecutivos para determinar un código alto.
Mapas de caracteres
A menudo los sitemas operativos, en especial windows, utilizan mapas de caracteres o páginas de código donde mezclan o inluyen varias normas aquí se encuentra en la figura 1 un ejemplo de como están distribuidos los caracteres y las normas de codificación de caracteres para MS DOS.
Normas de Transmisión
Las normas de transmisión tienen como objetivo definir la forma en que los caracteres codificados (utilizando las normas de codificación) son transmitidos en el canal de comunicaciones (por ejemplo Internet)
Actualmente, en Internet los mensajes se transmiten en paquetes que siempre constan de un número entero de octetos, y la detección de error ya no se hace con el octavo dígito de cada octeto, sino con octetos especiales que automáticamente se agregan a cada paquete. Las normas de transmisión se limitan a especificar una correspondencia, reversible, entre códigos (que representan caracteres), y secuencias de octetos (que han de ser transmitidos en calidad de datos).
Tablas tipográficas
Pero, finalmente, para cartearse electrónicamente en chino simplificado (por ejemplo) falta un detalle importante:
La tabla que el Consorcio Unicode publica para ser leída por humanos, contiene una representación gráfica o descripción, de cada carácter incluido hasta ese momento; pero, los sistemas de visualización de documentos, para poder funcionar, requieren tablas de tipografía, que asocian un glifo (dibujo) a cada carácter que abarcan, y sucede que hay muchísimas tablas de tipografía, con nombres como Arial o Times, que dibujan una misma letra a base de matrices diferentes y en diferentes estilos ("A" o "A"); sin embargo, la gran mayoría de las fuentes tipográficas contienen sólo un pequeño subconjunto de todos los caracteres Unicode. Por este motivo, para leer páginas con caracteres asiáticos, por ejemplo, no basta que el visualizador usado "acepte" la codificación Unicode, sino que, además, el computador debe tener instalada una tabla tipográfica suficientemente extensa.
Normas comunes de codificación de caracteres
- ISO 646
- EBCDIC
- ISO 8859:
- ISO 8859-1 Europa occidental
- ISO 8859-2 Europa occidental y Centroeuropa
- ISO 8859-3 Europa occidental y Europa del Sur
- ISO 8859-4 Europa occidental y países bálticos ( lituano, estonio y lapón )
- ISO 8859-5 alfabeto cirílico
- ISO 8859-6 árabe
- ISO 8859-7 griego
- ISO 8859-8 Hebreo
- ISO 8859-9 Europa occidental con el juego de caracteres turco
- ISO 8859-10 Europa occidental con juegos de caracteres nórdicos, incluyendo el de Islandia.
- ISO 8859-11 tailandés
- ISO 8859-13 idiomas bálticos y polaco
- ISO 8859-14 idiomas celtas ( gaélico irlandes, escoces, welsh )
- ISO 8859-15 Añade el símbolo de Euro y otros a ISO 8859-1
- ISO 8859-16 idiomas centroeuropeos (polaco, checo, eslovaco, húngaro, albano, rumano, alemán e italiano) ( Polish, Czech, Slovenian, Slovak, Hungarian, Albanian, Romanian, German, Italian )
- CP437, CP737, CP850, CP852, CP855, CP857, CP858, CP860, CP861, CP863, CP865, CP866, CP869
- Juegos de caracteres de Windows:
- Windows-1250 para idiomas centroeuropeos que utilizan un guión latino, (polaco, checo, eslovaco, húngaro, esloveno, serbio, croata, rumano y albano)
- Windows-1251 para alfabetos cirílicos
- Windows-1252 para idiomas occidentales
- Windows-1253 para griego
- Windows-1254 para turco
- Windows-1255 para hebreo
- Windows-1256 para árabe
- Windows-1257 para idiomas bálticos
- Windows-1258 para vietnamita
- Mac OS Roman
- KOI8-R, KOI8-U, KOI7
- MIK
- Cork o T1
- ISCII
- VISCII
- Big5
- Guobiao
- GB2312
- GBK (Página de códigos 936 de Microsoft)
- GB18030
- Shift JIS para Japonés (Página de códigos 932 de Microsoft)
- EUC-KR para Coreano (Página de códigos 932 de Microsoft)
- ISO-2022 y EUC para juegos de caracteres CJK
- Unicode (y sus subconjuntos, como el Basic Multilingual Plane de 16 bits). Véase también UTF-8 y UTF-16.
- ANSEL o ISO/IEC 6937
Codificación de caracteres del idioma español
|
|
|
En esta tabla los codigos dados están dado bajo el sistema numérico hexadecimal, para ver la representación de los códigos ASCII en sistemas numéricos tales como: decimal, binario y conocer el código ALT de teclado para los mismos e inclusive el nombre correcto para cada carácter, puede utilizar el applet que aparece aqui.