Miguel de Cervantes y Saavedra - Don Quijote de la Mancha - Ebook:
HTML+ZIP- TXT - TXT+ZIP

Wikipedia for Schools (ES) - Static Wikipedia (ES) 2006
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
UTF-8 - Wikipedia, la enciclopedia libre

UTF-8

De Wikipedia, la enciclopedia libre

Series
Unicode
Unicode
UTF-7
UTF-8
UTF-16
UTF-32
SCSU
Punycode
BiDi
BOM
Consorcio
UCS
Unificación Han


UTF-8 (8-bit Unicode Transformation Format) es una codificación de caracteres de longitud variable para Unicode creado por Rob Pike y Ken Thompson. UTF-8 usa grupos de bytes para representar el estándar de Unicode para los alfabetos de muchos de los lenguajes del mundo. UTF-8 es especialmente útil para la transmisión sobre sistemas de correo de 8 bits.

Usa de 1 a 4 bytes por carácter, dependiendo del símbolo de Unicode. Por ejemplo, se necesita un solo byte en UTF-8 para codificar los 128 caracteres US-ASCII en el rango U+0000 a U+007F de Unicode.

Aunque podría parecer ineficiente representar caracteres Unicode con hasta 4 bytes, UTF-8 permite a sistemas antiguos transmitir caracteres de este superconjunto de ASCII. Además, sigue siendo posible utilizar compresión de datos independientemente del uso de UTF-8.

El IETF requiere que todos los protocolos de Internet indiquen qué codificación utilizan para los textos y que UTF-8 sea una de las codificaciones contempladas.

Tabla de contenidos

[editar] Descripción

UTF-8 está actualmente estandarizado como RFC 3629 (UTF-8, una transformación de formato de ISO 10646).

En resumen, los bits de carácter Unicode son divididos en varios grupos, los cuales son después divididos entre las posiciones más bajas dentro de los bytes UTF-8.

Los caracteres más pequeños que 128dec son codificados con un byte sencillo que contiene su valor: este corresponde exactamente a los caracteres de 7-bit de los 128 del ASCII.

En los demás casos, se utilizan de 2 a 4 bytes. El bit más significativo de todos los bytes de esta cadena es siempre 1, para prevenir la confusión con los caracteres de 7-bits del ASCII, particularmente los caracteres menores a 32dec, tradicionalmente llamados caracteres de control, ej. retorno de carro).


Rango de Código
hexadecimal
UTF-16 UTF-8
binario
Notas
000000 - 00007F 00000000 0xxxxxxx 0xxxxxxx rango equivalente en ASCII; byte empieza con cero
000080 - 0007FF 00000xxx xxxxxxxx 110xxxxx 10xxxxxx primer byte empieza con 110 o 1110, el siguiente byte(s) empieza con 10
000800 - 00FFFF xxxxxxxx xxxxxxxx 1110xxxx 10xxxxxx 10xxxxxx
010000 - 10FFFF 110110xx xxxxxxxx
110111xx xxxxxxxx
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx UTF-16 require sustitutos; una compensación de 0x10000 es substraída, así el bit patrón no es idéntico con UTF-8

Por ejemplo, el carácter alef (א), el cual es en Unicode 0x05D0, en UTF-8 se codifica de esta manera:

  • Este cae en el rango de 0x0080 a 0x07FF. La tabla muestra que será codificado usando 2 bytes, 110xxxxx 10xxxxxx.
  • Hexadecimal 0x05D0 es equivalente al binario 101-1101-0000.
  • Los 11 bits se ponen en orden en la posición marcada por "x"-s: 11010111 10010000.
  • El resultado final son dos bytes, que si lo expresamos convenientemente, son los dos bytes hexadecimales 0xD7 0x90. Esa es la letra aleph en UTF-8.

De este modo, los primeros 128 caracteres necesitan un byte. Los siguientes 1920 caracteres necesitan dos bytes para ser codificados. Esto incluye caracteres del Alfabeto Latino con diacríticos, griego, cirílico, cóptico, armenio, hebreo y arábigo. El resto de los caracteres UCS-2 usan tres bytes y caracteres adicionales son codificados con 4 bytes. (Una especificación inicial permitía aún más códigos para ser representados, usando 5 ó 6 bytes, pero no fue muy bien aceptado.)

De hecho, UTF-8 permite usar una secuencia de 6 bytes y cubrir completamente el rango 0x00-0x7FFFFFFF (31 bits), pero UTF-8 fue restringido por RFC 3629 para usar solamente el área cubierta por la definición formal de Unicode, 0x00-0x10FFFF, en noviembre de 2003. Antes de esto, sólo los bytes 0xFE y 0xFF no ocurrían en el texto codificado UTF-8. Después de haberse introducido este límite, el número de bytes no usados en una cadena UTF-8 se incrementó a 13 bytes: 0xC0, 0xC1, 0xF5-0xFF. Aunque esta nueva definición limita el área de codificación severamente, el problema de flujos muy largos (diferentes maneras de codificar el mismo carácter, lo cual puede ser un riesgo para la seguridad) es eliminado, por que flujos muy largos contendrían algunos de estos bytes que no son usados y por lo tanto no sería una secuencia válida.

[editar] Razonamiento detrás de la mecánica de UTF-8

Como una consecuencia de la exacta mecánica de UTF-8, se muestran las siguientes propiedades de secuencia multi-byte:

  • El bit más significativo de un carácter de byte-simple es siempre 0.
  • Los bits más significativos del primer byte de una secuencia multi-byte determinan la longitud de la secuencia. Estos bits más significativos 110 para secuencias de dos bytes; 1110 para secuencias de tres bytes, etc.
  • Los bytes restantes en una secuencia multi-byte tienen 10 como sus 2 bits más significativos.

UTF-8 fue diseñado para satisfacer estas propiedades, de forma que se garantiza que ninguna secuencia de bytes de un carácter esté contenida dentro de una secuencia de bytes más larga de otro carácter. Esto asegura que la correspondencia de subcadenas puede ser aplicada para buscar palabras o frases dentro de un texto; algunas viejas codificaciones de longitud variable de 8-bits (tal como Shift-JIS) no tenían esta propiedad y de este modo hacían más complicado implementar algoritmos de búsqueda de cadenas. Aunque se ha argumentado que esta propiedad añade redundancia al texto codificado en UTF-8, las ventajas pesan más que esta preocupación; además, la compresión de datos no es uno de los objetivos de Unicode y debe ser considerado por separado.

[editar] Ventajas

  • Por supuesto, la ventaja más notable de cualquier Formato de Transformación Unicode sobre codificaciones heredadas es que éste puede codificar cualquier carácter.
  • Algunos símbolos Unicode (incluido el Alfabeto latino en UTF-8 se tomará como 1 byte pequeño, aunque otros pueden tomar más de 4. Así, UTF-8 generalmente ahorrará espacio comparado con UTF-16 o UTF-32 en donde los caracteres ASCII de 7 bits son comunes.
  • Una secuencia de bytes para un carácter jamás será parte de una secuencia más larga de otro carácter como lo hacían viejas codificaciones como Shift-JIS.
  • El primer byte de una secuencia multi-byte es suficiente para determinar la longitud de una secuencia multi-byte-. Esto hace extremadamente simple extraer una subcadena de una cadena dada sin elaborar un análisis exhaustivo.
  • La mayor parte del software existente (incluido el sistema operativo) no fueron escritos con Unicode en mente, y usar Unicode con ellos podría crear algunos problemas de compatibilidad. Por ejemplo, la librería estándar del lenguaje de programación C marca el final de una cadena con el carácter de un único byte 0x00. En la codificación Unicode UTF-16 la letra A en inglés es codificada como 0x0041. La librería considerará el primer byte 0x00 como el fin de la cadena e ignorará el resto. UTF-8, sin embargo, está diseñado para que los bytes codificados nunca tomen alguno de los valores de los caracteres especiales de ASCII, previniendo estos problemas y otros similares.
  • Las cadenas en UTF-8 pueden ser ordenadas usando rutinas de ordenamiento estándar orientadas a byte (sin embargo no habrá ninguna diferenciación entre las mayúsculas y las minúsculas con representaciones que exceden el valor 128).
  • UTF-8 es el valor predeterminado para el formato XML.

[editar] Desventajas

  • UTF-8 es de longitud variable; eso significa que diferentes caracteres toman secuencias de diferentes longitudes para codificar. La agudeza de esto podría ser disminuida, sin embargo, creando una interfaz abstracta para trabajar con cadenas UTF-8 y haciéndolo transparente al usuario.
  • Un analizador de UTF-8 mal escrito podría aceptar un número de diferentes representaciones pseudo-UTF-8 y convertirlas en la misma salida Unicode.
  • Las Ideográficas usan 3 bytes en UTF-8, pero sólo 2 en UTF-16. Así, los textos chinos/japoneses/coreanos usarán más espacio cuando sean representados en UTF-8.

[editar] Historia

UTF-8 fue inventado por Ken Thompson el 2 de Septiembre de 1992 en un mantel de un merendero de New Jersey con Rob Pike. Al día siguiente, Pike y Thompson lo implementaron e implantaron en su sistema operativo Plan 9.

UTF-8 fue oficialmente presentado en la conferencia USENIX en San Diego en Enero de 1993.

[editar] Enlaces externos

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com