Ejercico
Ejercico
Ejercico
Nombre: …………………………………………………………………………
EJERCICIOS 1
TEMA 1. CODIFICACIONES DE CARACTERES
1. Nos encontramos con el siguiente repertorio de caracteres:
{a,e,i,o,u,A,E,I,O,U,SP,b,c,d,f,g,h,j,k,l,B,C,D,F,G,H,J,K,L,CR}
Observa que el mismo contiene el espacio en blanco, SP, y el retorno de carro o
carácter de nueva línea, CR.
a) Propón una tabla de caracteres para el mismo.
b) Propón una regla de codificación de los mismos (de todos los caracteres), cuya
longitud de palabra sea 2 bytes. Puedes utilizar sistema binario o hexadecimal.
c) Con respecto a esa regla de codificación, escribe la representación en
hexadecimal del contenido de un fichero de texto que contenga la siguiente
cadena de caracteres:
Coge el agua debajo
Ulula la hoja
d) ¿Cuánto ocuparía (en bytes o en bits) el anterior fichero de texto (suponiendo
que no se le añadan caracteres de control) al guardarlo en un dispositivo de
almacenamiento?
2. Escribimos en un editor de texto la siguiente frase:
En España hay cigüeñas pero no ñandús
a) ¿Puede guardarse el siguiente texto con codificación ASCII (128 caracteres)?
b) ¿Puede guardarse en codificación ISO‐8859‐1 (ISO‐Latin 1)? ¿Cuánto ocuparía y por
qué?
c) ¿Puede guardarse en codificación UTF‐16? ¿Cuánto ocuparía y por qué?
3. Alguien nos plantea un problema que le ha surgido con un fichero que le ha
mandado un compañero. Lee el archivo con un editor de texto y ve lo siguiente:
Ðand∙ ±and+ Cig³e±a Cig_eÐa
Su autor le jura que escribió lo siguiente:
Ñandú ñandÚ Cigüeña CigÜeÑa
Ayudado por la siguiente información explica detalladamente qué ha sucedido.
1-7
Tabla MSDOS 850:
Tabla Windows 1252:
4. Define brevemente los siguientes conceptos y contesta a las preguntas formuladas:
a) Unicode.
b) UTF8 y UTF16. ¿Cuáles son sus longitudes de palabra? ¿Son compatibles (es decir,
existen caracteres que comparten la misma representación en ambas codificaciones)?
¿Hay alguna diferencia en el rango de caracteres que pueden representar?
c) Observa el siguiente comentario extraído de un foro donde se trata de explicar las
diferencias entre ISO‐8859‐1 y UTF8 a la hora de ser utilizados para construir páginas
web (compara las afirmaciones vertidas con tu propia experiencia y tus
conocimientos):
“Ventajas y desventajas de ISO‐8859‐1:
2 -7
Todos los editores de texto, editores de html manejan sin problemas
esta codificación con lo que te ahorras dolores de cabeza. Lo malo son
los acentos, ya que si bien los puedes escribir tal cual no se verán
correctamente y tendrás que usar á y demás.”
Realiza un comentario crítico sobre la anterior opinión, en especial de la segunda
afirmación.
d) Observa ahora lo que el mismo individuo comenta sobre UTF8 (sic):
“ventajas y desventajas de UTF8:
Olvidate del lenguaje que lo escribas (salvo japones y demás idiomas idiogramáticos
que usan UTF‐16) porque te lo va a coger tal cual, podrás escribir directamente los
acentos y siempre se verán correctamente.”
Realiza un nuevo comentario crítico sobre las dos afirmaciones que contiene el mismo.
5. Acabamos de guardar un texto en nuestro ordenador en tres ficheros distintos de
texto. Nos encontramos con las siguientes propiedades de los mismos:
a) ¿Por qué los ficheros tienen distintos tamaños almacenando el mismo texto?
b) Alguien nos dice que el texto en Prueba1.TXT ha sido guardado con una
codificación de longitud de palabra 1. A cambio de su información nos formula
las siguientes preguntas ¿Qué codificación hemos usado, más probablemente,
en Prueba3.TXT? ¿Y en Prueba2.TXT? ¿Cuántos caracteres “especiales” (no
ASCII) hemos usado en el texto como máximo?
6. Responde cuáles de las siguientes afirmaciones son verdaderas o falsas. Todas las
respuestas deben ir acompañadas de una justificación razonada para ser consideradas
correctas:
3 -7
a) Las codificaciones de longitud de palabra 1 byte pueden representar un máximo de
256 caracteres.
b) Todas las codificaciones de la familia ISO – 8859 representan el mismo repertorio
de caracteres, aunque estos puedan encontrarse en distintas posiciones de sus
correspondientes tablas.
c) El repertorio de caracteres de UTF – 16 y UTF – 16BE es mayor que el de UTF – 8.
7. El código fuente de la página web de la asignatura de nuestro compañero, a través
del navegador, se ve de la siguiente forma:
Él nos asegura que, como se puede observar, ha definido bien el “meta”
correspondiente al “charset”. Hazle un diagnóstico de los errores que ha cometido, y
cómo puede solucionarlo.
A los pocos días nos lo volvemos a encontrar y nos cuenta que, tras varios días sin
dormir, se ha dado cuenta de que si le indica al navegador que muestre la página con
la codificación “ISO‐8859‐1”, lo que ve ahora es:
Completa tu primer diagnóstico con una explicación completa de lo sucedido.
4 -7
8. Las especificaciones HTML 4.01 indican lo recogido en el punto 5.4. Explica
razonadamente dónde y cómo se aprecia su cumplimiento en la representación del
siguiente fichero en IE y Mozilla Firefox.
5.4 Caracteres no representables
Un agente de usuario puede no ser capaz de representar correctamente todos los
caracteres de un documento, por ejemplo, porque el agente de usuario carezca de una
fuente apropiada, porque un carácter tenga un valor que no pueda expresarse con la
codificación de caracteres interna del agente de usuario, etc.
Al haber tantas cosas diferentes que pueden hacerse en estos casos, este documento
no prescribe ningún comportamiento por defecto. […] En ausencia de un
comportamiento más sofisticado […], recomendamos el siguiente comportamiento a
los agentes de usuario:
1. Adoptar un mecanismo claramente visible, pero no molesto, para alertar al usuario
sobre los recursos ausentes.
9. Nos encontramos con el siguiente texto en formato Hexadecimal:
5 -7
Su autor nos dice que ha usado la siguiente tabla para codificarlo (ISO‐8859‐1):
Recupera el texto original (la posición 32 de la tabla corresponde con el espacio en
blanco, y las posiciones 13 + 10 con el salto de línea propio de los sistemas
“Windows”).
10. Tenemos la siguiente descripción de la regla de codificación de UTF8 para
caracteres Unicode:
‐ Los caracteres que en Unicode ocupan las posiciones (en Hexadecimal) entre 000000
hasta 00007F (dicho de otra forma, los 128 caracteres ASCII), se codifican en binario
por medio de la secuencia de bits “0xxxxxxxx”, donde “xxxxxxx” debe ser reemplazado
por la codificación en binario de la posición en la tabla Unicode del carácter deseado;
‐ Los caracteres que en Unicode ocupan las posiciones (en Hexadecimal) entre 000080
(posición 129) hasta 0007FF (posición 2048) se codifican por medio de dos bytes de la
forma “110xxxxx 10xxxxxx”, donde “xxxxx” y “xxxxxx” son sustituidos por la
codificación en binario de la posición en la tabla Unicode del carácter deseado.
Aunque no forma parte de la regla, se sobreentiende que los bits sobrantes (por la
izquierda) deben completarse con ceros.
6 -7
A partir de la anterior información, muestra la representación binaria en UTF ‐ 8 de los
siguientes caracteres:
a) µ
b) T
c) æ
d) &
e) Ă
La tabla Unicode tiene las siguientes posiciones:
7 -7