Código ASCII/Unicode

Esta página contiene ejercicios prácticos sobre el uso de códigos ASCII y Unicode en JavaScript.

¿Qué es el código ASCII/Unicode?

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.

Funciones importantes:

fromCharCode: accedemos a los caracteres Unicode
var x = String.fromCharCode(75, 81, 52);
Devuelve los caracteres correspondientes a la codificación "unicode" de los números 75, 81 y 52.

charCodeAt: función inversa de la anterior, 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, al igual que las matrices, comienzan a numerarse en el cero.

Ejercicio 1: Obtener códigos de caracteres

Este script muestra los códigos Unicode de cada carácter en una cadena.

Resultado:

Código del ejercicio:

var x = "ALDO aldo ";
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);

Ejercicio 2: Conversión bidireccional

Convierte texto a códigos Unicode y viceversa.

Resultado:

Código del ejercicio:

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);

Ejercicio 3: Tabla de códigos y suma

Muestra una tabla con los caracteres y sus códigos, y calcula la suma de todos los códigos.

Resultado:

Código del ejercicio:

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;
}

Ejercicio 4: Contador de letras

Cuenta el número de veces que aparece la letra 'a' o 'A' en un texto.

Resultado:

Código del ejercicio:

/* Programa que determina el número de "a" o "A" que aparece en un texto */
var texto;
texto = prompt(" Programa que determina el número de a o A que aparece en un texto. \n Escribe el texto que quieras:","");
alert("Número de a y de A = " + BuscaLetra(texto));

function BuscaLetra(x)
{
    var numero = 0;
    for(i = 0; i < x.length; i++)
    {
        if(x.charAt(i) == "a" || x.charAt(i) == "A") numero++;
    }
    return numero;
}

Búsqueda de un carácter determinado:

El método charAt de String devuelve una cadena conteniendo el carácter situado en la posición especificada:

"cadena".charAt(4) = letra situada en el lugar 5

Ejemplo: función que determina la existencia del carácter @:

function Busca(texto)
{
    for(i = 0; i < texto.length; i++)
    {
        if(texto.charAt(i) == "@") return true;
    }
    return false;
}

Bajar el archivo de texto con el código completo

Volver