viernes, 1 de julio de 2011

18 - Codificación de caracteres ASCII y UNICODE


¿Qué es el código ASCII?

La memoria de un ordenador guarda toda la información en formato digital. No hay forma de almacenar caracteres directamente. Cada uno de los caracteres tiene un código digital equivalente. Esto se denomina código ASCII (American Standard Code for Information Interchange). El código ASCII básico representaba caracteres utilizando 7 bits (para 128 caracteres posibles, enumerados del 0 al 127).
  • Los códigos de 0 al 31 no se utilizan para caracteres. Éstos se denominan caracteres de control ya que se utilizan para acciones como:
    • Retorno de carro (CR)
    • Timbre (BEL)
  • Los códigos 65 al 90 representan las letras mayúsculas.
  • Los códigos 97 al 122 representan las letras minúsculas
    (Si cambiamos el 6º bit, se pasa de mayúscula a minúscula; esto equivale a agregar 32 al código ASCII en base decimal).

Tabla de caracteres ASCII

caractère code ASCII code hexadécimal
NUL (Null) 0 00
SOH (Start of heading) 1 01
STX (Start of text) 2 02
ETX (End of text) 3 03
EOT (End of transmission) 4 04
ENQ (Enquiry) 5 05
ACK (Acknowledge) 6 06
BEL (Bell) 7 07
BS (Backspace) 8 08
TAB (Horizontal tabulation, tabulación horizontal) 9 09
LF (Line Feed, salto de línea) 10 0A
VT (Vertical tabulation, tabulación vertical) 11 0B
FF (Form feed) 12 0C
CR (Carriage return, retorno de carro) 13 0D
SO (Shift out) 14 0E
SI (Shift in) 15 0F
DLE (Data link escape) 16 10
DC1 (Device control 1) 17 11
DC2 (Device control 2) 18 12
DC3 (Device control 3) 19 13
DC4 (Device control 4) 20 14
NAK (Negative acknowledgement) 21 15
SYN (Synchronous idle) 22 16
ETB (End of transmission block, fin de bloque de transmisión) 23 17
CAN (Cancel, cancelar) 24 18
EM (End of medium, fin de medio) 25 19
SUB (Substitute, sustituto) 26 1A
ESC (Escape, carácter de escape) 27 1B
FS (File separator, separador de archivos) 28 1C
GS (Group separator, separador de grupo) 29 1D
RS (Record separator, separador de registros) 30 1E
US (Unit separator, separador de unidades) 31 1F
SP (Space, espacio) 32 20
! 33 21
" 34 22
# 35 23
$ 36 24
% 37 25
& 38 26
' 39 27
( 40 28
) 41 29
* 42 2A
+ 43 2B
, 44 2C
- 45 2D
. 46 2E
/ 47 2F
0 48 30
1 49 31
2 50 32
3 51 33
4 52 34
5 53 35
6 54 36
7 55 37
8 56 38
9 57 39
: 58 3A
; 59 3B
< 60 3C
= 61 3D
> 62 3E
? 63 3F
@ 64 40
A 65 41
B 66 42
C 67 43
D 68 44
E 69 45
F 70 46
G 71 47
H 72 48
I 73 49
J 74 4A
K 75 4B
L 76 4C
M 77 4D
N 78 4E
O 79 4F
P 80 50
Q 81 51
R 82 52
S 83 53
T 84 54
U 85 55
V 86 56
W 87 57
X 88 58
Y 89 59
Z 90 5A
[ 91 5B
\ 92 5C
] 93 5D
^ 94 5E
_ 95 5F
` 96 60
a 97 61
b 98 62
c 99 63
d 100 64
e 101 65
f 102 66
g 103 67
h 104 68
i 105 69
j 106 6A
k 107 6B
l 108 6C
m 109 6D
n 110 6E
o 111 6F
p 112 70
q 113 71
r 114 72
s 115 73
t 116 74
u 117 75
v 118 76
w 119 77
x 120 78
y 121 79
z 122 7A
{ 123 7B
| 124 7C
} 125 7D
~ 126 7E
Tecla de borrar 127 7F

Tabla de caracteres de ASCII extendido

El ASCII se desarrolló para utilizarse con el idioma inglés. No posee caracteres acentuados, o caracteres específicos de otros idiomas. Para codificar estos caracteres, se necesitaba un sistema de códigos distinto. El código ASCII se extendió a 8 bits (el equivalente a un byte) a fin de codificar más caracteres (esto se denomina código ASCII extendido).
Este código asigna los valores del 0 al 255 (codificados en 8 bits, es decir, en 1 byte) para las mayúsculas, las minúsculas, los dígitos, las marcas de puntuación y otros símbolos (incluyendo los caracteres acentuados del código iso-latin1).
El código ASCII extendido no está estandarizado y varía de acuerdo a la plataforma en que se utiliza.
Los dos grupos de caracteres más comunes del código ASCII extendido son:
  • Código extendido ASCII OEM, que estaba integrado en el primer PC de IBM.
    Código extendido ASCII OEM
  • Código extendido ASCII ANSI, utilizado por los sistemas operativos actuales.
    Código extendido ASCII ANSI

Código EBCDIC

El código EBCDIC (en castellano, código de intercambio decimal binario extendido), desarrollado por IBM, se utiliza para codificar caracteres con 8 bits. A pesar de que IBM lo utiliza en muchos de sus equipos, no ha tenido tanto éxito como ASCII.

Unicode

Unicode es un sistema de codificación de caracteres de 16 bits desarrollado en 1991. Unicode puede representar cualquier carácter a través de un código de 16 bits, independientemente del sistema operativo o el idioma de programación utilizado.
Incluye casi todos los alfabetos actuales (como el árabe, el armenio, el cirílico, el griego, el hebreo y el latín) y es compatible con el código ASCII.

No hay comentarios:

Publicar un comentario