UTF-8

El Vikipedio, la libera enciklopedio
Saltu al: navigado, serĉo

UTF-8 estas maniero prezenti (enkodigi) unikodajn signojn. Ĝia nomo devenas de la anglalingva mallongigo Unicode Transformation Format (unikoda transforma aranĝo). La nombro "8" indikas la fakton, ke la plej mallongaj koderoj havas 8 bitojn; la longo de la kodoj povas varii inter 8 kaj 32 bitoj, grupigitaj al 1 ĝis 4 bitokoj.

UTF-8 estas difinita en la normo RFC 3629. Principe ĝia skemo povas uzi ĝis 6 bitokojn por unu signo, sed Unikodo estas limigita al 17·216 koderoj, kaj por tiuj sufiĉas 4 bitokoj.

UTF-8 sekvas la principon, ke la komenca bitoko de signo estu klare rekonebla. Tiel eblas malkodi signovicon ne nur de la komenco, sed de ajna punkto en ĝi. Tio funkcias, ĉar la unua bitoko en signo neniam komenciĝas per la bitoj "10", sed la sekvaj bitokoj ĉiam. Krome el la unua bitoko klare ekkoneblas, kiom da bitokoj havas la signo, nome tiom, kiom da unuoj estas komence de la unua bitoko. Escepto estas la unu-bitokaj signoj, kiuj komencas per "0".

Jena tabelo montras la strukturon de la 1-, 2-, 3- kaj 4-bitokaj signoj (x-oj indikas variajn bitojn):

Unikoda intervalo,
dek-ses-ume
UTF-8, du-ume Rimarkigo
0x000000 - 0x00007F 0xxxxxxx kodoj identaj al Askio; la bitoko komenciĝas per 0
0x000080 - 0x0007FF 110xxxxx 10xxxxxx la unua bitoko komenciĝas per 110, la dua per 10
0x000800 - 0x00FFFF 1110xxxx 10xxxxxx 10xxxxxx la unua bitoko komenciĝas per 1110, la dua kaj tria per 10
0x010000 - 0x10FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx la unua bitoko komenciĝas per 11110, la tri sekvaj per 10

Oni kritikis pri UTF-8, ke ĝiaj koderoj havas malsamajn longojn. Iam tiurilate la enkodigo UTF-16 havis avantaĝon, sed de kiam 2 bitokoj ne plu sufiĉas por Unikodo, tiu avantaĝo malpliiĝis.

La fakto, ke la unu-bitokaj signoj komenciĝas ne per "10", sed per "0", impresas kiel neregulaĵo. Sendube tiun decidon kaŭzis la deziro de kongrueco kun 8-bita reprezento de Askio.