Notes
Slide Show
Outline
1
Karakteri, glifovi, fontovi računarskog sistema
2
Šta je to tekst?
  • Tekst
    • ... ili dokument je "informacija namenjena ljudskom sporazumevanju koja može biti prikazana u dvodimenzionalnom obliku... Tekst se sastoji od grafičkih elemenata kao što su karakteri, geometrijski ili fotografski elementi ili njihove kombinacije, koji čine sadržaj dokumenta." (ISO-definicija)

3
Karakteri, Glifovi, Fontovi
  • Vrlo često se ne pravi jasna razlika izmedju karaktera i njihove grafičke reprezentacije
  • Grafičku reprezentaciju karaktera nazivamo glifovima (glyph)
  • Skupove glifova nazivamo fontovima (font )
4
Karakteri, glifovi, fontovi
  • Korespodencija izmedju karaktera i glifova ne mora biti jednoznačna
  • Jedan glif može da predstavi više karaktera (ligature)
  • Isti karakter može da se predstavlja različitim glifovima u zavisnosti od svoje pozicije u reči
5
Zapis karaktera u računaru
  • Računari su zasnovani na binarnoj aritmetici
  • Osnovna ideja je svakom karakteru pridružiti odredjenu binarnu reč na unapred dogovoreni način, tj. kôd karaktera (character code)
6
Koliko karaktera želimo da predstavimo u računarima?
  • Tokom razvoja računarstva broj karaktera je postajao sve veći
  • Pošto je u početku razvoja englesko govorno područje bilo dominantno osnovno je bilo predstaviti sledeće karaktere :
7
Englesko govorno područje
  • Velika i mala slova engleske abecede : A, B,..., Z, a, b,..., z
  • Cifre : 0,1,...,9
  • Interpunkcijske znake : .,:;’+*-_
  • Specijalne znake : prelazak u novi red, tabulator, ...
8
Standardni karakterski kodovi
  • Sedamdesetih godina su se pojavile tabele standardnih karakterskih kodova dovoljne za zapis pomenutih karaktera
  • Najpoznatiji su
  • EBCDIC – IBM-ov standard, korišćen uglavnom na mainframe računarima, pogodan za bušene kartice
  • ASCII – Standard iz koga se razvila većina današnjih standarda
9
ASCII
  • ASCII (American Standard Code for Information Interchange)
  •  ASCII sedmobitan (broj karaktera je 128)


10
ASCII tabela
11
Primeri
  • Karakter A se zapisuje kao (41)16 tj. 0x41 što je (65)10 tj. (1000001)2
  • Blanko se zapisuje kao (20)16 što je (32)10 tj. (0100000)2
12
Oznaka za kraj reda
  • Oznaka za kraj reda se ne zapisuje isto u svim operativnim sistemima
  • Pod Windows ova se oznaka se zapisuje sa dva karaktera (CR LF), 0xD 0xA tj. 13 10 – istorijski razlozi (stari štampači)
  • Unix koristi samo karakter LF tj. 0xA
13
Šta sa ostalim jezicima?
  • Razvojem računarstva se javlja potreba kodiranja tekstova i na drugim jezicima
  • Kroz istoriju su postojala mnoga rešenja, od kojih su se neka zadržala, a neka su nestala
14
Kodne strane
  • Pod kodnom stranom (Code page) tj. skupom karaktera (Character set, charset) podrazumevamo uredjenu listu karaktera predstavljenih svojim karakterskim kodovima
15
Kodne strane
  • Podaci se u računarima obično zapisuju bajt po bajt
  • ASCII je sedmobitni standard
  • ASCII karakteri se zapisuju tao što se u svakom bajtu bit najveće težine postavi na 0
  • To ostavlja prostor za novih 128 karaktera čiji binarni zapis počinje sa 1
16
Kodne strane
  • Ovaj prostor se može popuniti na razne načine
  • Rešenje nije univerzalno, jer svakako na svetu postoji više od 256 različitih karaktera
  • Postavljeni su razni standardi dopunjavanja ovih 128 karaktera
  • Svim ovim kodnim stranama je zajedničko prvih 128 karaktera i oni se poklapaju sa ASCII
17
Kodne strane
  • Ovako napravljene kodne strane obično omogućuju kodiranje tekstova na više srodnih jezika (obično i geografski bliskih)
  • Nama su uglavnom važne kodne strane napravljene za centralno-evropske (Central European) latinice, kao i ćirilične kodne strane
18
Najčešće korišćene kodne strane kod nas
  • ISO 8859-2 (Latin2)
  • ISO 8859-5 (Ćirilična)
  • Windows 1250
  • Windows 1251 (Ćirilična)


  • Prve dve su delo medjunarodne organizacije za standardizaciju (International Standard organization), dok su naredne dve Microsoft-ovi standardi
19
Latin 1
  • Poželjno je poznavati i osnovnu kodnu stranu ISO 8859-1 (Latin1) jer je veoma često postavljena kao podrazumevana kodna strana. Ona se koristi za zapis tekstova na zapadno evropskim jezicima (Western European)
20
ISO 8859-1 (Latin1)
21
ISO 8859-2
22
Windows 1250
23
Windows 1251
24
Primeri
  • Kako izgleda reč MATF zapisana u kodnoj strani ISO 8859-2? A u Windows 1250? A u Windows 1251?
  • A reč lišće?
  • Šta predstavlja niz kodova 138 65 111 33 u kodnoj strani ISO 8859-2? A u Latin1?


25
Višebajtni karakterski kodovi
  • Iako navedene kodne strane omogućuju kodiranje tekstova koji nisu na engleskom jeziku nije moguće npr. u istom tekstu mešati ćirilicu i našu latinicu.
  • Azijskim jezicima nije dovoljno 256 mesta za zapis svih karaktera.
  • Zbog toga se uvode višebajtni karakterski kodovi
26
MBCS
  • Pre svega zbog potreba istočno azijskih korisnika uvedeni su tzv. višebajtni skupovi karaktera tj. Multi-Byte Character Sets (MBCS)
27
MBCS
  • Ideja je u tome da se najčešće korišćeni karakteri zapisuju koristeći samo jedan bajt, dok se ostali karakteri zapisuju koristeći dva bajta, tj. koristi se mešavina jednobajtnih i dvobajtnih karakterskih kodova (pod UNIX-om nekad čak i trobajtnih)
  • Ovo značajno otežava tumačenje podataka
28
MBCS
29
UCS, ISO 10646, UNICODE
  • Kasnih osamdesetih, dve velike organizacije su pokušale standardizaciju tzv. Univerzalnog skupa karaktera (Universal Character Set - UCS)
  • To su bili ISO, kroz standard 10646 i projekat UNICODE organizovan i finansiran uglavnom od strane američkih firmi koje su se bavile proizvodnjom višejezičkog softvera.
30
ISO 10646
  • ISO 10646 je zamišljen kao 4 bajtni standard. Pri tome se prvih 65536 karaktera koriste kao osnovni višejezični skup karaktera dok je ostali prostor ostavljen kao proširenje za drevne jezike, celokupnu naučnu notaciju i slično.
31
UNICODE
  • Vremenom su se pomenuta dva projekta združila i nastao je jedinstven dvobajtni standard koji jednostavno nazivamo UNICODE
  • UNICODE svakom karakteru dodeljuje dvobajtni kod
  • Prvih 128 karaktera se poklapaju sa ASCII standardom, dok su sledećih 128 napravljeni tako da se pokalapaju sa Latin1 standardom
32
Primeri
  • Zapisati reč MATF koristeći UNICODE
  • Zapisati reč Kašičica ćirilicom i latinicom u UNICODE kodu
33
UCS-2
  • Unicode standard u suštini predstavlja veliku tabelu koja svakom karakteru dodeljuje broj.
  • Standardi koji opisuju kako se niske karaktera onda prevode u nizove bajtova se dodadno definišu
  • ISO definiše UCS-2  standard koji jednostavno svaki UNICODE karakter prevodi u odgovarajuća dva bajta


34
UTF
  • Tekstovi kodirani preko UCS-2 standarda sadrže veliki broj nula, koje obično u operativnim sistemima poput UNIX-a i u programskom jeziku C imaju specijalno značenje.
  • Iz istog razloga softver koji je razvijen za rad sa dokumentima u ASCII formatu ne može da radi bez izmena nad dokumentima kodiranim preko UCS-2 standarda
35
UTF
  • Unicode transformation format (UTF) algoritam svakom UNICODE karakteru dodeljuje odredjeni niz bajtova čija dužina varira od 1 do najviše 6.
  • UTF je ASCII kompatibilan, što znači da se ASCII karakteri zapisuju pomoću jednog bajta, na standardni način.
36
UTF-8
  • Najčešće korišćena varijanta ovog agloritma je UTF-8 koja je dovoljna za zapis svih dvobajtnih UNICODE karaktera
  • Pored ovoga ISO uvodi i UTF-16, UTF-32, kao i standard UCS-4
37
WGL4
  • Windows uvodi skup karaktera pod imenom Windows Glyph List 4 (WGL4) koji sadrži preko 600 karaktera koji se koriste u evropskim jezicima
  • Za razliku od tradicionalnih fontova koji u sebi sadže glifove za karaktere jedne kodne strane, TrueType fontovi koji podržavaju WGL4 standard sadrže glifove za sve evropske karaktere