UTF-8: Malsamoj inter versioj

[kontrolita revizio][kontrolita revizio]
Enhavo forigita Enhavo aldonita
malkonfuzo de signo kaj signonumero
+ avantaĝoj
Linio 6:
UTF-8 sekvas la principon, ke la komenca bitoko de signonumero estu klare rekonebla. Tial eblas malkodi kodoprezenton de signoĉeno ne nur ekde la komenco, sed de ajna ties pozicio. Tio funkcias, ĉar la unua bitoko en signonumero neniam komenciĝas per la bitoj "10", sed la sekvaj bitokoj ĉiam. Krome, la unua bitoko klare indikas, kiom da bitokoj havas la prezento de signonumero — nome tiom, kiom da unuoj (kiom da bitoj "1") aperas komence de la unua bitoko. Escepto estas la unubajtaj prezentoj de signonumeroj, kiuj komenciĝas per "0".
 
== Difino ==
Jena tabelo montras la strukturon de la 1-, 2-, 3- kaj 4-bitokaj prezentoj de signonumeroj (x-oj indikas variajn bitojn informajn, kiuj konsistigas la propran numeron):
 
Linio 30 ⟶ 31:
|la unua bitoko komenciĝas per 11110, la tri sekvaj per 10
|}
 
== Avantaĝoj de UTF-8 ==
 
# Ĉiu teksto askia estas ankaŭ teksto en UTF-8.
# Neniu kodoprezento neaskia entenas bajton kun valoro de signokodo askia.
# Signoĉenoj en UTF-8 ĉe laŭbajta ordigo konservas la ordon de unikodaj signonumeroj entjeraj (UCS-4).
# Averaĝa teksto prezentita en ISO-Latin-X (interalie, [[ISO 8859-3]]) nur tre malmulte ŝvelas ĉe transformo en la kondoprezenton UTF-8.
# Kodoprezentoj de de signoj diferencaj disde NUL neniam entenas bajton egalan al 0, kio eblias uzi la tian bajton kiel finilon de signoĉeno, laŭ la programista tradicio.
# Ĉar la komenca bajto de la prezentoj de signonumeroj estas aparte markita, eblas riparo de la interpreto ĉe la kutima laŭbajta datumtransmeto (diference disde ekz-e UTF-16).
# Ne estas problemo pri la pezkomenca/pezfina numerado de bajtoj ({{angle}}endianness), kontraste al UTF-16 ktp.
# UTF-8 estas defaŭlta kodoprezento en XML kaj rilataj formoj (XHTML, SVG, XSL, CML, MathML).
 
Oni kritikis pri UTF-8, ke la prezentoj de signonumeroj havas malsamajn longojn. Iam tiurilate la kodoprezento [[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]].
 
== Ekzemplo esperanta ==
Jen kiel la tradician [[Eĥoŝanĝo ĉiuĵaŭde|ĉiuĉapelaĵon]] esperantan, prezentitan en UTF-8, vidigas la uniksa komando <tt>od</tt> (la neaskiaj kodoj en la supraj linioj, kaj ĉiuj kodoj en la malsupraj, aperas okume):
<source lang="bash">
$ echo "eĥoŝanĝo" | od -An -t co1
e 304 245 o 305 235 a n 304 235 o \n
145 304 245 157 305 235 141 156 304 235 157 012
$ echo "ĉiuĵaŭde" | od -An -t co1
304 211 i u 304 265 a 305 255 d e \n
304 211 151 165 304 265 141 305 255 144 145 012
$
</source>
Kompreneble, en normala esperanta teksto la averaĝa denso de ĉapelitaj literoj estas multe malpli granda.
 
[[Kategorio:Kodoj de literoj]]