De lo único que entiende un ordenador es de 0 y 1. Cuando se asigna una cadena de texto a una variable, ésta internamente, se guarda como una serie de números que identifican a los diferentes caracteres constituyentes de la misma. Esta codificación se llama ASCII.
El código ASCII asigna a cada carácter un número de 0 a 255, es decir 256 caracteres en total.
1 carácter = 8 bits = 1 byte = 8 ceros y unos.
0 y 1 en grupos de ocho: 28 = 256
El código ASCII se ha quedado pequeño: 256 caracteres es insuficiente para representar los símbolos propios de muchos países.
La ISO (organización internacional para la normalización), propuso el código UNICODE:
1 carácter = 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 representación de sus caracteres como valores Unicode no Ascii
Función fromCharCode: accedemos a los caracteres Unicode
var x = String.fromCharCode(75, 81,52);
alert x;
Aparecen los caracteres correspondientes a la codificación "unicode" de los números 75, 81 y 52.
Función charCodeAt, es la función inversa de la anterior, es decir a partir de una cadena devuelve el código correspondiente a la letra que se encuentre en la posición especificada:
var x = "JavaScript"
alert(x.charCodeAt(5));
Devolverá un 99, que corresponde a la "c".
Las cadenas igual que las matrices comienzan a numerarse en el cero.
<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>
<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>
<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>
|
Anterior: 3 array de varias dimensiones |
Siguiente: buscar un caracter |
| articulos relacionados |