Toggle menu
244 tis.
66
18
623,5 tis.
Hrvatska internetska enciklopedija
Toggle preferences menu
Toggle personal menu
Niste prijavljeni
Your IP address will be publicly visible if you make any edits.

UTF-8

Izvor: Hrvatska internetska enciklopedija

UTF-8 (Unicode Transformation Format 8) je način zapisa kodnih točaka u standardu Unicode pomoću nizova 8-bitnih bajtova.

Prednost kodiranja je u tome što je "unatrag" kompatibilan sa 7-bitnim ASCII standardom. Slova većine europskih i bliskoistočnih pisama se kodiraju s najviše 16 bita.

Standardi

Postoji nekoliko vrijedećih, vrlo malo različitih definicija u različitim dokumentima:

  • RFC 3629 / STD 63 (2003), gdje se UTF-8 opisuje kao dio protokola na Internetu
  • The Unicode Standard, Version 4.0, §3.9–§3.10 (2003)
  • ISO/IEC 10646-1:2000 Annex D (2000)

Shema kodiranja

Kodiranje ovisi o vrijednosti kodne točke. Kodne točke do iznosa 127 se zapisuju kao jedan 8-bitni bajt, te se stoga poklapaju s 7-bitnim ASCII kodiranjem. U ostalim slučajevima se vrijednost kodne točke zapisuje kao niz od dva ili više 8-bitnih bajtova. U takvom nizu od dva ili više bajtova, svaki bajt ima najznačajniji bit postavljen na 1. Prvi bajt u takvom nizu ima barem prva dva najznačajnija bita postavljene na 1, a svi ostali imaju drugi najznačajniji bit na 0 (dakle počinju kao 10...). Broj uzastopnih jedinica na značajnijem kraju prvog bajta označava ukupnu duljinu niza bajtova za prikaz jedne kodne točke.Uzimajući u obzir dozvoljena područja kodnih točki, to daje veliku redundantnost, a opet kompaktnost.

Sljedeća tablica prikazuje primjerom kodiranje za kodne točke u 21-bitnom prostoru, što je dovoljno za sadašnju verziju Unicode standarda. No koncept iza UTF-8 kodiranja je sposoban i za pohranu 32-bitnih vrijednosti, u kojem slučaju bi bilo potrebno do 6 bajtova.

Opseg kodne točke (hex.) Shema bitova Zapis u UTF-8 (bitovi) Napomene
000000–00007F
128 kodova
00000000 00000000 0zzzzzzz 0zzzzzzz kompatibilno s ASCII, prvi (jedini) bajt počinje s 0
sedam z sedam z; vrijednosti 00–7F
000080–0007FF
1920 kodova
00000000 00000yyy yyzzzzzz 110yyyyy 10zzzzzz prvi bajt počinje s 110, ostali s 10
tri y, dva y, šest z pet y, šest z; vrijednosti C2–DF i 80–BF
000800–00D7FF
00E000–00FFFF
61440 kodova
00000000 xxxxyyyy yyzzzzzz 1110xxxx 10yyyyyy 10zzzzzz prvi bajt počinje s 1110, ostala 2 s 10
četiri x, četiri y; dva y, šest z četiri x, šest y, šest z; vrijednosti E0–EF i2x 80–BF
010000–10FFFF
1048576 kodova
000wwwxx xxxxyyyy yyzzzzzz 11110www 10xxxxxx 10yyyyyy 10zzzzzz prvi bajt počinje s 11110, ostala 3 s 10
tri w, dva x; četiri x, četiri y; dva y, šest z tri w; šest x; šest y; šest z; vrijednosti F0–F4 i 3x 80–BF

Na primjer, znak alef (א), koji ima u standardu Unicode kod U+05D0, se zapisuje pomoću UTF-8 ovako:

  • Upada u opseg U+0080 do U+07FF. Tablica pokazuje da se kodira pomoću 2 bajta, 110yyyyy 10zzzzzz.
  • 0x05D0 je ekvivalentno binarnom 0000-0101-1101-0000, to podijelimo u tri dijela: 00000-10111-010000; prvi dio se ne kodira, drugi su yyyyy, a treći zzzzzz.
  • Konačni rezultat su dva bajta, prikazani kao 0xD7 0x90. To je zapis alefa (א) u UTF-8.

Vidi još

U Wikipediji

Vanjske poveznice

fi:Unicode#UTF-8