42
1 Zapisivanje teksta Zapisivanje teksta u u računaru računaru Uvod u organizaciju računara

Zapisivanje teksta

Embed Size (px)

Citation preview

Page 1: Zapisivanje teksta

1

Zapisivanje tekstaZapisivanje teksta u računaru u računaru

Uvod u organizaciju računara

Page 2: Zapisivanje teksta

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)

Page 3: Zapisivanje teksta

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

Page 4: Zapisivanje teksta

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)

Page 5: Zapisivanje teksta

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:

Page 6: Zapisivanje teksta

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

Page 7: Zapisivanje teksta

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

Page 8: Zapisivanje teksta

Uvod u organizaciju računara 8

ASCIIASCII

ASCII (American Standard Code for Information Interchange)

ASCII sedmobitan (broj karaktera je 128)

Page 9: Zapisivanje teksta

Uvod u organizaciju računara 9

ASCII tabelaASCII tabela

Page 10: Zapisivanje teksta

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

Page 11: Zapisivanje teksta

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

Page 12: Zapisivanje teksta

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

Page 13: Zapisivanje teksta

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

Page 14: Zapisivanje teksta

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

Page 15: Zapisivanje teksta

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

Page 16: Zapisivanje teksta

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

Page 17: Zapisivanje teksta

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

Page 18: Zapisivanje teksta

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)

Page 19: Zapisivanje teksta

Uvod u organizaciju računara 19

ISO 8859-1 (Latin1)ISO 8859-1 (Latin1)

Page 20: Zapisivanje teksta

Uvod u organizaciju računara 20

ISO 8859-2ISO 8859-2

Page 21: Zapisivanje teksta

Uvod u organizaciju računara 21

Windows 1250Windows 1250

Page 22: Zapisivanje teksta

Uvod u organizaciju računara 22

Windows 1251Windows 1251

Page 23: Zapisivanje teksta

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?

Page 24: Zapisivanje teksta

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

Page 25: Zapisivanje teksta

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)

Page 26: Zapisivanje teksta

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

Page 27: Zapisivanje teksta

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.

Page 28: Zapisivanje teksta

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.

Page 29: Zapisivanje teksta

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

Page 30: Zapisivanje teksta

Uvod u organizaciju računara 30

PrimeriPrimeri

Zapisati reč Matf koristeći UNICODEZapisati reč višnjičica ćirilicom i

latinicom u UNICODE kodu

Page 31: Zapisivanje teksta

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

Page 32: Zapisivanje teksta

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

Page 33: Zapisivanje teksta

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

Page 34: Zapisivanje teksta

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)

Page 35: Zapisivanje teksta

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

Page 36: Zapisivanje teksta

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

Page 37: Zapisivanje teksta

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

Page 38: Zapisivanje teksta

Funkcija kodiranja kod Funkcija kodiranja kod UTF-8UTF-8

Uvod u organizaciju računara 38

Page 39: Zapisivanje teksta

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

Page 40: Zapisivanje teksta

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 )

Page 41: Zapisivanje teksta

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

Page 42: Zapisivanje teksta

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