gratiszona

Codigo ASCII/Unicode y javascript

De lo unico que entiende un ordenador es de 0 y 1. Cuando se asigna una cadena de texto a una variable, esta internamente, se guarda como una serie de numeros que identifican a los diferentes caracteres constituyentes de la misma. Esta codificacion se llama ASCII.
El codigo ASCII asigna a cada caracter un numero de 0 a 255, es decir 256 caracteres en total.
1 caracter = 8 bits = 1 byte = 8 ceros y unos.
0 y 1 en grupos de ocho: 28 = 256
El codigo ASCII se ha quedado pequeño: 256 caracteres es insuficiente para representar los simbolos propios de muchos paises.
La ISO (organizacion internacional para la normalizacion), propuso el codigo UNICODE:
1 caracter = 2 bytes = 16 ceros y unos
0 y 1 en grupos de 16: 216 = 65.536 caracteres distintos.
La mayor parte de los sistemas operativos modernos (por ejemplo el Windows), guardan internamente la representacion de sus caracteres como valores Unicode no Ascii
funcion fromCharCode: accedemos a los caracteres Unicode
var x = String.fromCharCode(75, 81,52);
alert x;
Aparecen los caracteres correspondientes a la codificacion "unicode" de los numeros 75, 81 y 52.
funcion charCodeAt, es la funcion inversa de la anterior, es decir a partir de una cadena devuelve el codigo correspondiente a la letra que se encuentre en la posicion especificada:
var x = "JavaScript"
alert(x.charCodeAt(5));
Devolvera un 99, que corresponde a la "c".
Las cadenas igual que las matrices empiezan a numerarse en el cero.
  • Escribe el siguiente programa:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG055.HTM
var x='PACO-paco';
var letras=new Array(9);
var salida='';
salida=salida+x+'\n';
for(i=0;i<9;i++)
{
salida=salida+x.charCodeAt(i)+'\t';
letras[i]=x.charCodeAt(i);
}
alert(salida);
alert(letras);
</SCRIPT>
</HTML>
  • Grabalo en TuCarpeta con el nombre Prog055.htm y ejecutalo.
  • Escribe el siguiente programa:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG056.HTM
var x;
x=prompt('Escribe una palabra o frase','');
var letras=new Array();
var numeros=new Array();
for(i=0;i<x.length;i++)
{
numeros[i]=x.charCodeAt(i);
letras[i]=String.fromCharCode(numeros[i]);
}
alert(letras+'\n'+numeros);
</SCRIPT>
</HTML>
  • Grabalo en TuCarpeta con el nombre Prog056.htm y ejecutalo.
  • Escribe el siguiente programa:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG057.HTM
var x;
var salida='';
var letras=new Array();
var numeros=new Array();
x=prompt('Escribe una palabra o frase','');
for(i=0;i<=x.length;i++)
{
numeros[i]=x.charCodeAt(i);
letras[i]=String.fromCharCode(numeros[i]);
salida=salida+letras[i]+' = '+numeros[i]+'\n';
}
alert(salida);
alert(SumaASCII(x));
function SumaASCII(frase)
{
var aux=0;
for(i=0;i<frase.length;i++)
{
aux += frase.charCodeAt(i);
}
return aux;
}
</SCRIPT>
</HTML>
  • Graba el programa en TuCarpeta con el nombre Prog057.htm y ejecutalo.
  • Investiga si es verdad lo que dicen las "malas lenguas": "En el nombre del fundador y presidente de Microsoft hay el numero de la bestia".

Anterior: array de varias dimensiones
Siguiente: buscar un caracter