Anar al contingut

UTF-16

De L'Enciclopèdia, la wikipedia en valencià

UTF-16, que significa en ISO/IEC 10646:2003 “UCS Transformation Format for 16 Plans of Group 00”, és una forma de codificació de caràcters UCS i Unicode utilisant símbols de llongitut variable. Està oficialment definida en l'Anex C de la norma ISO/IEC 10646:2003. També està descrita en l'Estàndar Unicode (versió 3.0 o superior), de la mateixa manera que en la RFC 2781 de l'IETF.

Les seues característiques principals són:

  • És capaç de representar qualsevol caràcter Unicode.
  • Utilisa símbols de llongitut variable: 1 o 2 paraules de 16 bits per caràcter Unicode (2 o 4 bytes). L'unitat d'informació és la paraula de 16 bits.
  • Està optimisat per a representar caràcters del pla bàsic multilingüe (BMP) i caràcters del ranc O+0000 a O+FFFF. El BMP conté la gran majoria de caràcters i sistemes d'escritura en us en l'actualitat. Quan es llimita al pla bàsic multilingüe, UTF-16 pot ser considerat una forma de codificació en símbols de tamany fix (16 bits).
  • No superposició: Els símbols d'1 paraula (16 bits) utilisen un subconjunt de valors que no pot utilisar-se en símbols de 2 paraules (32 bits).

Història

[editar | editar còdic]

UTF-16 és l'evolució d'UCS-2, present en l'estàndart Unicode fins a la versió 1.1. En UCS-2 cada punt de còdic es representa pel seu valor, lo que llimitava el seu us al The Unicode Standard. Version 3.0 standard. En la versió 2.0 de l'Estàndart Unicode, la decisió d'ampliar l'espai de còdics per damunt del còdic FFFF va supondre la necessitat d'incloure un nou format que donara soport als nous plans, 15 i 16, d'us privat. No obstant, l'estàndart no va definir encara cap punt de còdic fent us d'este mecanisme fins a la versió 3.1.[1][2]

Descripció

[editar | editar còdic]

En UTF-16 cada punt de còdic entre O+0000 i O+FFFF es codifica, sense canvis, utilisant 16 bits. Este ranc es correspon en el pla bàsic multilingüe de Unicode, per lo que la gran majoria dels caràcters d'us comú es codifiquen en 16 bits.

Els caràcters dels plans adicionals es codifiquen per mig de 32 bits. La codificació no es fa de forma directa, és dir, el còdic final no és el valor del punt de còdic. UTF-16 definix un format de transformació per a estos casos denominat parells subrogats.

A el hora de valorar l'espai d'almagasenament requerit per un text utilisant esta codificació, pot assumir-se que els caràcters no inclosos en el pla bàsic són molt poc freqüents i per lo tant cada caràcter utilisarà 16 bits. Esta afirmació és vàlida també per al cas de les escritures CJK (chinenc, japonés i coreà).

Parells subrogats

[editar | editar còdic]
Archiu:Codificación UTF-16.svg
Eixemple: Codificació del caràcter Unicode O+1D11E, Clau de sol. El caràcter està fòra del pla bàsic (BMP) i per lo tant requerix l'us de parells subrogats.

Unicode i ISO/IEC han llimitat l'espai asignable als còdics fins a 10FFFF, per lo que es requerix un màxim de 21 bits per a la representació de qualsevol caràcter. Si s'usen dos paraules per a representar còdics per damunt de FFFF, es té un excés de bits. Aprofitant esta circumstància, es va dissenyar el sistema de parells subrogats per a representar caràcters fora del pla bàsic.

Es definix un parell subrogat com dos paraules de 16 bits a on:

  • La primera paraula de 16 bits es denomina subrogat alt o subrogat inicial en terminologia Unicode o elements RC de la zona mija-alta en terminologia ISO/IEC. Prenen valors en el ranc [D800,DBFF].
  • La segona paraula de 16 bits es denomina subrogat baix o subrogat final en terminologia Unicode o elements RC de la zona mija-baixa en terminologia ISO/IEC. Prenen valors en el ranc [DC00,DFFF].
  • Es complix el principi de no superposició, els conjunts valors de subrogats alts, baixos i còdics no subrogats són completament disjuntos.

Per a poder complir el principi de no superposició, el conjunt de valors utilisats com a parells subrogats ha segut estandardisat i reservat, per lo que no pot ser utilisat per a atres fins.

El sistema de parells subrogats es va afegir en la versió 2.0 de Unicode, ISO 10646:xxxx, i pel seu disseny minimisa els conflictes que es pogueren presentar en implementacions anteriors que no facen us d'ells.

Errors de codificació

[editar | editar còdic]

Les normes de codificació establixen, per lo tant, llímits a les cadenes que es poden formar. Segons la norma, un intérpret de cadenes deu rebujar com inválidas, i no tractar d'interpretar, les cadenes mal formades.

  • Un còdic subrogat inicial sempre deu anar seguit d'un còdic subrogat final.
  • Un còdic subrogat final sempre deu anar precedit per un còdic subrogat inicial.
  • No s'admet la codificació de caràcters inválidos. Els punts de còdic O+FFFE, O+FFFF, i el ranc O+FDD0 a O+FDEF són punts de còdics especials que no representen caràcters i no deuen codificar-se en UTF-16. Tampoc s'admeten els valors reservats fòra del pla bàsic.

Esquemes de codificació i BOM

[editar | editar còdic]

A partir del format de transformació UTF-16 es definixen 3 esquemes de codificació. A pesar de que compartixen noms, no deu confondre's esquemes i formes de codificació. Els esquemes de codificació tracten de la forma en que es serializa l'informació codificada. La seguritat en els intercanvis d'informació entre sistemes heterogéneus requerix l'implementació de sistemes que permeten determinar l'orde correcte dels bits i bytes i garantisar que la reconstrucció de l'informació és correcta. Una diferència fonamental entre processadors és l'orde de disposició dels bytes en paraules de 16 i 32 bits, lo que es denomina endianness. Els esquemes de codificació deuen garantisar que els extrems d'una comunicació saben cóm interpretar l'informació rebuda.

Esquema de codificació Endianness Admet BOM
UTF-16 Big-endian o Little-endian
UTF-16BE Big-endian No
UTF-16LE Little-endian No


Unicode definix una marca especial, Byte order mark o BOM (Marca d'orde de bytes), a l'inici d'un ficher o una comunicació per a fer explícita l'ordenació de bytes. Esta marca és el caràcter en punt de còdic O+FEFF. Quan es troba en una posició inicial, pot ser interpretat com BOM depenent del context de la comunicació. En qualsevol atra posició manté la seua semàntica original com a caràcter ZERO WIDTH NON-BREAKING SPACE. Quan un protocol superior especifica l'orde de bytes, la marca no és necessària i pot ometre's, donant lloc als esquemes de la llista anterior en sufix BE o LE. En el cas de l'esquema UTF-16, que admet BOM, si este no s'especifica s'assumix que l'ordenació de bytes és big-endian.

Vore també

[editar | editar còdic]

Referències

[editar | editar còdic]
  1. The Unicode Consortium, Joan Aliprand, et al. (giner de 2000). «Appendix D. Changes from Unicode Version 2.0», The Unicode Standard. Version 3.0 standard (en Inglés), Addisson-Wesley. ISBN 0-201-61633-5.
  2. The Unicode Consortium (octubre de 2006). «Appendix D. Changes from previous versions», Julie D. Allen, Joe Becker (et al.) (ed.). Unicode 5.0 standard (en Inglés), Addisson-Wesley. ISBN 0-321-48091-0.


Referències

[editar | editar còdic]