Ovaj članak ili neki od njegovih odlomaka nije dovoljno potkrijepljenizvorima (literatura, veb-sajtovi ili drugi izvori). Ako se pravilno ne potkrijepepouzdanim izvorima, sporne rečenice i navodi mogli bi biti izbrisani. Pomozite Wikipediji tako što ćete navesti validne izvore putemreferenci te nakon toga možete ukloniti ovaj šablon.
UTF-8 varijanta je najzgodnija za kodiranje većinski latiničnog teksta. Dato je i kratko uputstvo za korištenje te varijante u Microsoft Word-u, Netscape Composer-u i tekstualnom editoru Kate. U tekstu su također preporučeni standardni Unicodefontovi koji omogućavaju laku prenosivost teksta sa računara naračunar ili za objavljivanje teksta naInternet.
Prvi računari su bili pravljeni pretežno za englesko govorno područje i imali su podršku samo za engleskialfabet, za brojeve, zagrade i još poneki kontrolni karakter, što je činilo ukupno 128 mogućih slova (u 7 bita). To je bio tzv.ASCII ili US-ASCII standard.
Kasnije je skup karaktera proširen na 256 (8 bita), a "gornjih" 128 karaktera je bilo korišteno za dodatne karaktere. Iz neke navike je i ovaj prošireni ASCII nazivan ASCII, tako da tu često dolazi do zabune. Da bi postojala podrška za više jezika, smišljane su tzv.kodne strane (Code Page) koje definišu ponašanje tog dodatnog skupa slova.
Osnovna kodna strana na personalnim računarima (PC437) u tom gornjem setu karaktera definiše razne grafičke karaktere za crtanje tekstualnih prozora i slično. Kasnije je razvijeno još puno kodnih strana koje podržavaju određene jezike. Tako postoje Latin1 (ISO-8859-1) za latinična pisma Zapadne Evrope (Francuska, Njemačka, Španija, ...), Latin2 (ISO-8859-2) i Windows-1250 za latinična pisma Istočne Evrope (našalatinica i sl.), ISO-8859-5, KOI8-R i Windows-1251 zaćirilicu i drugi.
Osnovni problem sa kodnim stranama je to što se međusobno isključuju, tj. cijeli dokument mora da bude napisan istim pismom. To uglavnom nije problem realizovati, ali ako bi bilo potrebno pomiješati dva pisma, kao na primer u nekom turističkom vodiču gde zajedno postoji i tekst na bosanskom, na engleskom i na francuskom, nailazi se na problem. Zbog toga se došlo do ideje da se napravi jedinstveni zapis za sve jezike -Unicode.
Postoji više verzija Unicode-a. Bazična verzija je dvobajtni format zapisa do 216 = 65536 karaktera. Njen naziv jeUCS-2 zato što koristi dva okteta, odnosno dvabajta. Sa tih 65536 karaktera riješen je problem zapisa skoro svih postojećih pisama (uključujući čak i neka izmišljena, kao na primerklingonsko pismo). Ovaj tip Unicode-a se naziva Plain UCS-2 ili UTF-16.
Sada se javlja problem alokacije prostora za Unicode poruku na medijumu koji se koristi. Ako je reč o nekom dokumentu na disku, on će da zauzima duplo više prostora nego konvencionalan dokument jer će se svaki karakter zapisivati sa dva bajta umesto samo sa jednim. Ako je riječ o prenosu podataka preko računarske mreže, biće potrebno prenijeti duplo više podataka, pa će samim tim i prenos da traje duplo više (odnosno da košta duplo više). Postavlja se pitanje da li je to suviše velika cijena za univerzalno pismo i da li postoji neki način da se taj problem prevaziđe i izbjegne. Kao rješenje uvijek stoji mogućnost da se zapisuje nekom odgovarajućom kodnom stranicom i troši bajt po karakteru, ako nije neophodno korištenje više pisama u istom dokumentu (što se rijetko dešava). Drugo rješenje je korištenje tzv. transformacionih šema za pogodniji zapis i prenos podataka korištenjem Unicode-a.
Prvo je razvijena Unicodetransformaciona šema sa osnovnom jedinicom od 8 bita (UTF-8). Pomoću nje se karakter zapisuje u jednom, dva ili tri bajta, u zavisnosti od toga o kom je karakteru reč. Ova transformaciona šema je prevashodno zgodna za upotrebu u jezicima koji koriste latinicu. O UTF-8 će biti više reči u poglavljuUkratko o UTF-8.
Jedan dioMail Transfer Agent-a, kao i zvanični standard zaInternet poštu (IETF:STD 11,RFC 822) podržava samo 7-bitne mail poruke.MIME standardi (RFC 2045,RFC 2046,RFC 2047,RFC 2048 iRFC 2049) omogućavaju prenos višebitnih riječi preko Internet mail-a, koristećiBase64 iQuoted Printable načine kodiranja, međutim, oni nisu pravljeni za prenos Unicode-a nego za prenos bilo kakvih fajlova i nisu bili najoptimalnija rješenja. Zbog toga je kasnije razvijena 7-bitna transformaciona šema UTF-7. Tu se karakter zapisuje u jednom ili u nekoliko bajtova, slično kao i u UTF-8. Osnovna razlika je u tome što UTF-7 koristi samo Base64 karaktere koji bez problema mogu da se prenose putem elektronske pošte. Za takvu namenu se pokazalo da je UTF-7 optimalniji zapis nego UTF-8 kada se kodira sa Base64 ili sa Quoted Printable algoritmima kodiranja.
Postoji i noviji Unicode standard pod nazivom UCS-4 koji koristi 4 bajta za zapis 231 = 2147483648 karaktera podijeljenih u tzv. ravni. Prva dva bajta definišu ravan, tako da ima 215 = 32768 ravni. Druga dva bajta definišu karakter unutar ravni, tako da ima 216 = 65536 karaktera po ravni. Taj noviji format je više napravljen kao plan za budućnost nego kao realna opcija, pošto još uvijek nijedan karakter nije alociran u novodobijeni prostor, odnosno svi za sada definisani karakteri (cijeli UCS-2) se nalaze u ravni 0 ili osnovnoj višejezičnoj ravni (Basic Multilingual Plane, BMP). Međutim, pošto je UCS-4 novi standard za Unicode, treba i njega imati u vidu. Da bi se UCS-4 transparentno uveo u upotrebu redefinisani su formati zapisa UTF-7, UTF-8, UTF-16 i UTF-32. To je učinjeno tako da svaki karakter iz UCS-2 ima istu reprezentaciju u UTF-7 i UTF-8 kao i ranije. UTF-16 je u neku ruku sinonim za UCS-2 i sadrži više od dva bajta samo u slučaju da se kodira neki karakter van "Osnovne jezičke ravni" (BMP), koji za sada ne postoje. Za više informacija, pogledajte tabeluŠema kodiranja UCS-4 u UTF-8. UTF-32 je u stvari način zapisa UCS-4 u kome se koriste sva četiri bajta. Zbog toga što viši i niži bajt (ili dva bajta) mogu da se zapišu u memoriju na dva načina, postoje još po dvije podvarijante UTF-16 i UTF-32 koje se razlikuju po redoslijedu bajtova. To su UTF-16BE (big endian) i UTF-16LE (little endian) i UTF-32BE i UTF-32LE. Ovo nije uvedeno da bi se uvela dodatna zabuna i zbrka, nego zato što različite arhitekture računara različito čuvaju podatke.
Postoje dvije organizacije koje definišu dva standarda za Unicode. Jedan format je razvijen od strane tzv.The Unicode Consortium pod nazivomThe Unicode Standard. Drugi standard je razvilaMeđunarodna organizacija za standardizaciju -International Organization for Standardization, pod nazivom ISO/IEC 10646. Ta dva standarda su skoro identična i razlikuju se po pitanju tzv. Han unifikacije (predstavljanje japanskih, kineskih i korejskih znakova jednim jedinstvenim skupom znakova), oko dodatnih karaktera za definisanje akcenata, a od skoro i u tome što Unicode Consortium nije još podržao UCS-4 standard. Međutim, za našu upotrebu slobodno možemo da smatramo da su potpuno identični. Međunarodna organizacija koja definiše standarde za Internet -Internet Engineering Task Force, IETF je u svojim standardima, tzv. "zahtjevima za komentarima" (Request for Comments, RFC), u kojima je definisano sve što postoji na Internetu, prihvatila UTF-7 (RFC 1642 iRFC 2152), UTF-8 (RFC 2044 iRFC 2279) i UTF-16 (RFC 2781), čime su oni i "zvanično" ušli u upotrebu na Internetu, tj. svuda. U najnovijim standardima IETF je izostavio Unicode Consortium i koristi samo verziju ISO 10646, što znači da je zvanično priznata verzija ISO 10646.
UHTML jeziku za opis veb stranica se javljaju još dva načina za kodiranje Unicode karaktera. Ovi načini troše mnogo više prostora nego originalni Unicode zapis i namijenjeni su za korištenje unutar neke od kodnih stranica za ubacivanje ponekog karaktera iz neke druge kodne stranice. Jedan način je zapis oktalnih vrednosti UTF-8 bajtova. Zapisuje se tako što se prvo zapiše karakter \, pa onda oktalna vrijednost bajta. Ako taj karakter u UTF-8 kodiranju sadrži više bajtova, svaki bajt se zapisuje na isti način. Tako, na primjer, karakter Ф čiji je UCS-2 kodU+0424 (U+ označava da je riječ o Unicode karakteru), a UTF-8 zapis0xD0 0xA4 ima svoj HTML oktalni zapis kao\320\244, pošto je0xD0 = 0320(oktalni) = 208(decimalni) i0xA4 = 0244 = 164.
Drugi način zapisa Unicode karaktera u HTML-u je putem decimalne vrijednosti njihovog UCS-2 koda. Zapisuje se tako što se prvo zapišu karakteri&#, pa onda decimalna vrijednost UCS-2 koda i na kraju karakter;. Tako bi se, na primjer, gore pomenuti karakter Ф sa UCS-2 kodomU+0424 zapisao u HTML decimalnom zapisu kaoФ, pošto je0x0424 = 02044 = 1060.
UTF-8 je zamišljen kao format koji najviše odgovara latiničnom tekstu. To je veoma pogodno za korištenje u izvornom kodu programa ili u raznoraznimjezicima za označavanje (HTML, XML, \LaTeX, ...) jer su standardne komande tih programskih jezika/jezika za označavanje uvijek ASCII, a tekst koji se koristi može da bude i ASCII i UTF-8. Na taj način se ne ometa rad programskogkompajlera iliparsera jezika za označavanje, a omogućava se korištenje višejezičke podrške.
U UTF-8 se karakter zapisuje u obliku jednog bajta ako u svom zapisu sadrži samo najnižih 7 bita, odnosno, ako je reč o ASCII karakteru (vidi poglavljeRazvoj elektronskog zapisa teksta). Ukoliko karakter u svom Unicode zapisu sadrži samo najnižih 11 bita, u UTF-8 se zapisuje u obliku dva bajta. I na kraju, ako karakter sadrži svih 16 bita, zapisuje se u obliku tri bajta. U tabeli 1 je data šema kako se UCS-4 transformiše u UTF-8. Tabela je data za pun, četvorobajtni Unicode, a ako je reč o dvobajtnom Unicode-u, tj. o UCS-2, treba gledati samo prva tri reda u tabeli. Detaljniji opis algoritma za transformaciju može se naći uRFC 2279.
UTF-8 nije najoptimalniji način zapisa za kineski i japanski tekst jer umjesto da se koriste dva bajta po karakteru, za takav tekst bi bilo korišćeno čak tri bajta po karakteru, ali to i nije toliko važno za nas. Za ćirilični tekst je, sa druge strane, svejedno da li se koristi čisti Unicode ili UTF-8, pošto se svaki ćirilični karakter zapisuje u obliku dva bajta i u jednom i u drugom formatu. Za nas je ipak optimalniji UTF-8 jer postoji mogućnost pisanja i ćirilicom i latinicom, pa ako u ćirilici već ne može da se izbjegne upotreba dva bajta, u latinici se skoro svi karakteri zapisuju samo jednim bajtom (osim šđčćž).
Jedan od najčešće korištenih programa za obradu teksta pod Windows "operativnim sistemom" je Microsoft Word for Windows. On u svom formatu već ima podršku za više jezika. Ako je potrebno da se neki Word dokument prebaci na Internet u obliku HTML fajla, potrebno je naglasiti da se sačuva u UTF-8 formatu. To otprilike izgleda ovako:
Prvo treba napisati sam dokument, naravno.
Kada se dokument prebacuje na Internet, treba izFile menija izabrati opcijuSave as Web.
U dijalogu koji će se pojaviti treba izabrati gdje se čuva fajl i prije nego što se stvarno sačuva, treba iz menijatools izabrati opcijuWeb Options.
U novootvorenom dijalogu treba izabrati stranicuEncoding i tu u poljuSave this document as izabratiUnicode (UTF-8).
Popularni Web čitač Netscape Communicator u svom sklopu ima i editor za Web stranice, tzv. Composer. On naravno može da bira na koji način će da čuva Web stranice i može da izabere i Unicode i to i UTF-8 i UTF-7. Nas zanima samo UTF-8, mada je postupak manje - više isti.
Postoje dva načina da se u Netscape Composer-u tekst sačuva u UTF-8 formatu. Moguće je jednostavno izabrati iz menijaView opcijuCharset i tu izabrati UTF-8 kao format.Poslije toga se fajl najnormalnije sačuva i bude sačuvan u UTF-8 formatu.
Drugi način je da se fajl sačuva umjesto opcijomFile->Save, opcijomFile->Save As Charset. Tada se dobija dijalog u kome može da se izabere način zapisa fajla i tu treba izabrati UTF-8.
Neki tekstualni uređivači također imaju opciju da tekst sačuvaju na više načina kodiranja. Jedan od takvih je Kate koji je sastavni dioKDEgrafičkog okruženja podLinuxoperativnim sistemom. On također može da sačuva tekst i u čistom UCS-2 formatu ili u UTF-16 (kao dijelu UCS-4). Za nas je bitan samo format UTF-8. Jednostavno se iz menijaPrikaz izabere podmeniPodesi kodiranje i tu se izabere željeno kodiranje, odnosno UTF-8.
NaUNIX operativnim sistemima postoji bibliotekaiconv koja vrši konverziju iz jednog u drugi način kodiranja na veoma jednostavan način. Postoji i ekvivalentancommand line program koji konvertuje fajlove iz i u sve moguće načine kodiranja. Lista kodova iz kojih i u koje ova biblioteka/program može da konvertuje zauzima više od 3 pune strane i može se reći da podržava sve moguće načine kodiranja.
Da bi se koristio Unicode u pripremi dokumenata, potrebno je imati odgovarajuće fontove koji ga (barem djelimično) podržavaju. Od fontova dostupnih naWindows-u, Unicode sigurno podržavaju Arial, Times New Roman, Helvetica, Verdana i Courier New fontovi, a također su instalirani na svim Windows platformama, tako da bi generalno trebalo da se koristi neki od tih fontova. Fontovi tipa TimesCirilica ili YULTimes mogu da prikažu naše karaktere, ali su daleko od Unicode-a i u prenosu fajla sa jednog na drugi računar u elektronskom obliku postoji velika šansa da taj fajl neće biti lijepo čitljiv na drugom računaru, tako da bi trebalo da se takvi nestandardni fontovi izbegavaju koliko god je to moguće.
Na LINUX-u i ostalim UNIX-ima se u samom nazivu fonta vidi da li podržava unicode ili ne, pošto posljednji deo naziva fonta predstavlja character set fonta. Ako tu piše iso10646, to znači da je font Unicode kompatibilan. Međutim, i ovdje bih radi prenosivosti dokumenata, preporučio da se koriste standardni (Adobe) fontovi, kao što su Times (-adobe-times-*-iso10646-1), Utopia (-adobe-utopia-*-iso10646-1), Helvetica (-adobe-helvetica-*-iso10646-1), Courier (-adobe-courier-*-iso10646-1).
Svjetski trendovi razvoja baza podataka idu ka uvođenju Unicode-a, kao standardni način zapisa podataka iXML-a, kao standarni jezik za prenos i prezentaciju tih podataka.
Većina baza podataka već duže vreme podržava Unicode. Dobar deo aplikacija za rad sa bazama koriste XML za prezentovanje i prenos podataka, zato što se pokazalo da je XML jednostavan jezik za programiranje, za koji već postoji punoparser-a i zato što se pokazalo da je XML dovoljno fleksibilan da može da prenese bilo kakav tip podataka na sličan način. Da bi se programi međusobno "razumjeli", razvijeni su razni standardi za opis podataka koristeći XML (kao što je, na prijmer,Encoded Archival Description standard).
To uvođenje XML-a kao glavnog jezika za podršku bazama podataka je još više učvrstilo poziciju Unicode-a, pošto se XML fajlovi standardno pišu u UTF-8 ili UTF-16. Zanimljiva je i ta činjenica da jeMicrosoft, koji se uglavnom protivi svim standardima i trudi se da definiše svoje, prihvatio XML i koristi ga gdje god može. Cijela.NET tehnologija je bazirana na XML. Zbog toga može da se očekuje da će u budućnosti biti samo više korištenja XML-a i Unicode-a i da je bitno što ranije se orijentisati ka njima.
U tabeli 2 su izlistani skoro svi karakteri koji se kod nas koriste, sa svojim UCS-2 kodom, UTF-8 zapisom i sa HTML oktalnim i decimalnim zapisima (za više informacija pogledajte poglavlje 2).