zapisivanje teksta
TRANSCRIPT
1
Zapisivanje tekstaZapisivanje teksta u računaru u računaru
Uvod u organizaciju računara
Uvod u organizaciju računara 2
Šta je to tekst?Š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)
Uvod u organizaciju računara 3
Tekst je niz karakteraTekst je niz karaktera
Iako obično tekst zamišljamo kao dvodimenzioni objekat, u računarima se tekst predstavlja kao jednodimenzioni (linearni) niz karaktera.
Potrebno je, dakle, uvesti specijalne karaktere koji označavaju prelazak u novi red, tabulator, kraj teksta i slično
Uvod u organizaciju računara 4
Zapis karaktera u računaruZapis karaktera u računaru
Računari su zasnovani na binarnoj aritmetici
Cele brojeve je moguće predstaviti u binarnom sistemu
Osnovna ideja je svakom karakteru pridružiti odredjeni ceo broj na unapred dogovoreni način
Ove brojeve zovemo kodovima karaktera (character codes)
Uvod u organizaciju računara 5
Koliko karaktera želimo da Koliko karaktera želimo da predstavimo u računarima?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:
Uvod u organizaciju računara 6
Englesko govorno područjeEnglesko govorno područje
Velika slova engleskog alfabeta : A,B,...,Z Mala slova engleskog alfabeta : a,b,...,z Cifre : 0,1,...,9 Interpunkcijske znake : .,:;’+*-_ i slično Specijalne znake : kraj reda, tabulator i
slično
Uvod u organizaciju računara 7
Standardni karakterski kodoviStandardni 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
Uvod u organizaciju računara 8
ASCIIASCII
ASCII (American Standard Code for Information Interchange)
ASCII sedmobitan (broj karaktera je 128)
Uvod u organizaciju računara 9
ASCII tabelaASCII tabela
Uvod u organizaciju računara 10
PrimeriPrimeri
Karakter A se zapisuje kao (41)16 tj. 0x41 što je (65)10 tj. (1000001)2
Razmak se zapisuje kao (20)16 što je (32)10 tj. (0100000)2
Zapišite cifru 3 u ASCII koduZapišite tekst Fakultet u ASCII kodu
Uvod u organizaciju računara 11
Oznaka za kraj redaOznaka 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 CR tj. 0xD
Uvod u organizaciju računara 12
Šta sa ostalim jezicima?Š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
Uvod u organizaciju računara 13
Kodne straneKodne strane
Pod kodnom stranom (Code page) tj. skupom karaktera (Character set, charset) podrazumevamo uredjenu listu karaktera predstavljenih svojim karakterskim kodovima
Uvod u organizaciju računara 14
Kodne straneKodne 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
Uvod u organizaciju računara 15
Kodne straneKodne 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
Uvod u organizaciju računara 16
Kodne straneKodne 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
Uvod u organizaciju računara 17
Najčešće korišćene kodne strane Najčešće korišćene kodne strane kod naskod 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
Uvod u organizaciju računara 18
Latin 1Latin 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)
Uvod u organizaciju računara 19
ISO 8859-1 (Latin1)ISO 8859-1 (Latin1)
Uvod u organizaciju računara 20
ISO 8859-2ISO 8859-2
Uvod u organizaciju računara 21
Windows 1250Windows 1250
Uvod u organizaciju računara 22
Windows 1251Windows 1251
Uvod u organizaciju računara 23
PrimeriPrimeri
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?
Uvod u organizaciju računara 24
Višebajtni karakterski kodoviViš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
Uvod u organizaciju računara 25
MBCSMBCS
Pre svega zbog potreba istočno azijskih korisnika uvedeni su tzv. višebajtni skupovi karaktera tj. Multi-Byte Character Sets (MBCS)
Uvod u organizaciju računara 26
MBCSMBCS
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 više bajtova
Ovo značajno otežava tumačenje podataka
Uvod u organizaciju računara 27
UCS, ISO 10646, UNICODEUCS, 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.
Uvod u organizaciju računara 28
ISO 10646ISO 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.
Uvod u organizaciju računara 29
UNICODEUNICODE Vremenom su se pomenuta dva projekta
združila i nastao je jedinstven standard koji jednostavno nazivamo UNICODE
Ključni deo UNICODE standarda je osnovna višejezična ravan koja 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
Uvod u organizaciju računara 30
PrimeriPrimeri
Zapisati reč Matf koristeći UNICODEZapisati reč višnjičica ćirilicom i
latinicom u UNICODE kodu
Uvod u organizaciju računara 31
UUCS-2CS-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
Uvod u organizaciju računara 32
UUCS-2CS-2
Redosled bajtova prilikom zapisivanja višebajtnih podataka zavisi od sistema
“Big endian” i “little endian” sistemiNa početku teksta se često zapisuje
oznaka redosleda bajtova (byte order mark): 0xFEFF ili 0xFFFE
Uvod u organizaciju računara 33
UTFUTF Neki karakteri se koriste češće od drugih 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
Uvod u organizaciju računara 34
UTFUTF
Unicode transformation format (UTF) je skup algoritama koji svakom UNICODE karakteru dodeljuju odredjeni niz bajtova čija dužina varira od 1 do najviše 6 u zavisnosti od varijante UTF algoritma.
UTF-8, UTF-16, UTF-32 (ekvivalentno sa UCS-4)
Uvod u organizaciju računara 35
UTF-8UTF-8
UTF-8 je najčešće korišćena varijanta UTF
Dovoljan za zapis svih dvobajtnih UNICODE karaktera
Struktura UTF-8 zapisa
Na početku teksta se često zapisuje oznaka redosleda bajtova tako što se karakter koji predstavlja UCS-2 oznaku redosleda zapiše pomoću UTF-8
Svaki UTF-8 kod počinje bitovima koji određuju da li je jednobajtni ili višebajtni
Struktura UTF-8 zapisa
Kod višebajtnih kodova, broj pratećih bajtova se određuje na osnovu vodećeg bajta
Kod njih svaki bajt čuva kako bitove koji se odnose na format zapisa, tako i na bitove koji nose informaciju
Funkcija kodiranja kod Funkcija kodiranja kod UTF-8UTF-8
Uvod u organizaciju računara 38
Svojstva UTF-8 kodova
ASCII kompatibilnostPromenljiva dužinaJasno razlikovanje višebajtnih i
jednobajtnih kodovaJednostavno određivanje broja
bajtova kojima se kodiraLako utvrđivanje početka koda
Uvod u organizaciju računara 40
Karakteri, Glifovi, Fontovi 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 )
Uvod u organizaciju računara 41
Karakteri, glifovi, fontoviKarakteri, 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
Uvod u organizaciju računara 42
WGL4WGL4
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