Friday, December 12, 2025

Unicode



Unicode je univerzalni standard za kodiranje karaktera koji omogućava jedinstvenu numeričku reprezentaciju svakog karaktera, bez obzira na jezik, platformu ili program. Njegova glavna svrha je da se prevaziđu problemi koji su nastali zbog različitih sistema za kodiranje karaktera, koji su prethodno koristili različite skupove karaktera za različite jezike i regione, što je dovodilo do nekompatibilnosti i gubitka podataka.

1. Šta je Unicode?

Unicode je standardizovani način predstavljanja teksta na računarima i digitalnim uređajima. Svakom karakteru dodeljuje jedinstveni kodni broj (poznat kao "code point"), koji je numerička vrednost koja predstavlja specifičan karakter. Unicode obuhvata karaktere za skoro svaki pisani jezik na svetu, uključujući latinicu, ćirilicu, kineske znakove, arapsko pismo, kao i simbole, interpunkcijske znakove i čak emotikone.

  • Kodiranje karaktera: Unicode mapira karaktere na kodne tačke, koje su brojčane vrednosti koje predstavljaju određene znakove.

  • Kodna tačka: Kodna tačka je broj dodeljen svakom karakteru, obično u heksadecimalnom formatu (npr. U+0041 predstavlja slovo "A").

2. Svrha Unicode-a

Glavna svrha Unicode-a je da obezbedi univerzalni skup karaktera koji se može koristiti na svim sistemima, jezicima i platformama. Pre Unicode-a, različiti sistemi su koristili različite kodne skupove, što je dovodilo do problema sa kompatibilnošću podataka. Na primer, karakter kodiran na jednom sistemu možda ne bi bio ispravno prikazan na drugom, jer su sistemi koristili različite kodne standarde.

Unicode rešava ovaj problem tako što pruža jedno jedinstveno kodiranje za sve karaktere, omogućavajući da se tekst prenosi i prikazuje bez gubitka podataka.

3. Struktura Unicode-a

  • Kodna tačka: Svaki Unicode karakter je predstavljen kodnom tačkom. Kodne tačke se obično pišu kao U+XXXX, gde XXXX predstavlja heksadecimalnu vrednost.

    • Primer: U+0041 za "A", U+03A9 za "Ω".

  • Planovi: Unicode je organizovan u nekoliko "planova", pri čemu svaki plan sadrži 65.536 (2^16) kodnih tačaka.

    • Osnovni multijezični plan (BMP): Prvi plan (od U+0000 do U+FFFF), koji sadrži većinu često korišćenih karaktera.

    • Dodatni planovi: Dodatni planovi van BMP (od U+010000 do U+10FFFF) sadrže manje korišćene i istorijske karaktere, kao i emotikone i druge simbole.

4. Oblici kodiranja Unicode-a

Unicode definiše nekoliko različitih načina za predstavljanje karaktera u memoriji, poznatih kao oblici kodiranja. Glavni oblici su:

  • UTF-8: Najčešće korišćeni oblik kodiranja, naročito na internetu. Koristi od 1 do 4 bajta za predstavljanje jednog karaktera i potpuno je kompatibilan sa ASCII-jem. Efikasan je u pogledu memorije za engleski jezik, ali može biti manje efikasan za druge jezike.

  • UTF-16: Ovaj oblik koristi 2 ili 4 bajta po karakteru. Često se koristi u mnogim programskim jezicima i okruženjima, kao što su Java i Windows.

  • UTF-32: Koristi 4 bajta po karakteru. Jednostavan je jer je svaki karakter tačno 4 bajta, ali je manje efikasan u smislu memorije u poređenju sa UTF-8 ili UTF-16, naročito za jezike sa malim skupovima karaktera kao što je engleski.

5. Unicode skupovi karaktera

Unicode obuhvata širok spektar karaktera, uključujući:

  • Latinična slova (A-Z, a-z)

  • Cirilica (koristi se za ruski i druge jezike)

  • Grčka slova (Alfa, Beta, Gama)

  • Kineski karakteri (koristi se u mandarinskom, kantonskom itd.)

  • Arapsko pismo

  • Matematički simboli

  • Emotikoni (Unicode uključuje preko 3.000 emotikona, od onih sa facialnim izrazima, preko hrane, do zastava)

  • Interpunkcija (zarezi, tačke, navodnici, itd.)

  • Prostori (razmak, tab, novi red itd.)

Unicode takođe podržava retke skripte kao što su Majevske hijeroglife, egipatske hijeroglife, kao i istorijske jezike poput sumerskog i staropersijskog.

6. Unicode i ASCII

ASCII (American Standard Code for Information Interchange) je bio rani standard za kodiranje karaktera koji je podržavao samo 128 karaktera, uglavnom za engleski jezik. Unicode je u potpunosti kompatibilan sa ASCII-jem, što znači da prvih 128 karaktera u Unicode-u (od U+0000 do U+007F) odgovaraju ASCII skupu karaktera. Ovo omogućava sistemima koji koriste ASCII da takođe budu kompatibilni sa Unicode-om, samo proširujući skup karaktera.

7. Poređivanje i sortiranje Unicode karaktera

Pored samog predstavljanja karaktera, Unicode takođe definiše pravila za sortiranje i upoređivanje teksta, poznato kao Unicode kolacija. Ovo je važno za stvari kao što su redosled u rečnicima, osetljivost na velika/mala slova, i sortiranje karaktera sa akcentima ili dijakritičkim znakovima. Na primer, Unicode tretira karaktere kao što su "é" (U+00E9) i "e" (U+0065) kao različite karaktere, što je ključno za sortiranje teksta u jezicima kao što su francuski i španski, gde akcenti menjaju značenje reči.

8. Emotikoni i Unicode

Unicode je omogućio standardizovano korišćenje emotikona. Emotikoni, kao što su  (tehničar) ili  (cool), kodirani su kao Unicode karakteri. Unicode omogućava upotrebu emotikona na svim platformama (iOS, Android, Windows), gde isti kodni brojevi odgovaraju istim emotikonima, iako se dizajn može razlikovati.

  • Varijante emotikona: Emotikoni imaju različite "tonove kože", varijacije po spolu i kombinacije (kao što su porodični i parski emotikoni), a sve to je deo Unicode standarda.

  • Unicode 12.0 i dalje: Svaka nova verzija Unicode-a dodaje nove emotikone, koji su postali ključni za savremenu komunikaciju.

9. Kako se Unicode ažurira

Unicode standard održava i ažurira Unicode Consortium, neprofitna organizacija. Nove verzije Unicode-a izlaze redovno i dodaju nove karaktere, skripte i ponekad emotikone. Na primer, Unicode 13.0 dodao je više od 5.000 novih karaktera, dok je Unicode 14.0 dodao više od 800 novih emotikona.

10. Unicode u programiranju i web razvoju

U programiranju, Unicode je postao standard za obrada teksta. Većina modernih programskih jezika i web tehnologija nudi nativnu podršku za Unicode. Na primer:

  • HTML: Unicode karakteri mogu se direktno uključiti u HTML pomoću njihovih numeričkih kodova (npr. 😀 za ).

  • Python: Python 3 koristi Unicode kao podrazumevani format za stringove, što znači da možete direktno obraditi tekst na različitim jezicima bez brige o kodiranju.

  • JavaScript: JavaScript takođe podržava Unicode, a možete koristiti Unicode escape sekvence kao što je \u{1F600} za prikazivanje karaktera poput 

11. Izazovi Unicode-a

Iako je Unicode postigao veliki uspeh u unifikaciji predstavljanja teksta na globalnom nivou, i dalje postoje izazovi:

  • Kompatibilnost: Nisu svi sistemi i aplikacije dosledni u implementaciji Unicode-a, naročito stariji sistemi ili aplikacije koje su razvijene pre nego što je Unicode postao široko prihvaćen.

  • Kompleksnost: Neki karakteri, kao što su

ChatGPT said:

Evo sveobuhvatnog pregleda o Unicode-u — na srpskom i sa proverljivim činjenicama iz standarda Unicode**-a**:


1. Šta je Unicode?

Unicode je univerzalni standard za kodiranje znakova koji omogućava da svaki karakter iz bilo kog jezika ili skripte bude jedinstveno predstavljen brojem (kodnom tačkom), bez obzira na računar, operativni sistem ili program. Unicode

Unicode omogućava globalnu razmenu i obradu teksta — što znači da se tekst iz kineskog, arapskog, ćirilice, latiničnih jezika i drugih sistema može prikazivati i obrađivati bez gubitka informacija. Unicode


2. Kodne tačke (Code Points)

Svaki karakter u Unicode-u ima jedinstveni broj nazvan kodna tačka, i zapisuje se kao:

U+XXXX (heksadecimalno)

Primeri:

  • U+0041 → veliko slovo A

  • U+0061 → malo slovo a

  • U+1F600 →  (emotikonom) Science Israel

Unicode-ov skup podržava 1.114.112 kodnih tačaka — to je opseg od U+0000 do U+10FFFF. Unicode


3. Planovi i opseg Unicode-a

Unicode prostor je podeljen u 17 planova od po 65.536 kodnih tačaka:

  • Plan 0: Basic Multilingual Plane (BMP) — većina najčešće upotrebljenih znakova.

  • Planovi 1–16: Supplementary Planes — dodatni znakovi, istorijske skripte i simboli.

  • Maksimalna je kodna tačka U+10FFFF. Wikipedia


4. Encoding (UTF-8, UTF-16, UTF-32)

Unicode ne kaže samo koje znakove ima — već i kako ti brojevi (kodne tačke) zapravo počinju u memoriji ili fajlu.

UTF-8

  • Najrašireniji oblik kodiranja, posebno na internetu.

  • Varijabilna širina: jedan karakter koristi 1 do 4 bajta.

  • Kompatibilan je sa starim ASCII standardom — ASCII nizovi su validni UTF-8 nizovi. Unicode+1

UTF-16

  • Varijabilna širina: znakovi mogu biti 2 ili 4 bajta (surrogate parovi).

  • Često se koristi kod aplikacija i platformi poput Windows-a i Jave. Unicode

UTF-32

  • Fiksna širina: svaki znak koristi 4 bajta.

  • Jednostavan za obradu (direktna veza između broja bajtova i broja karaktera), ali manje efikasan u memoriji. Unicode

Unicode standard definiše ove tri glavne encoding forme, sve validne i konformantne Unicode-u. Unicode


5. Šta obuhvata Unicode?

Unicode sadrži:

  • Pisane jezike sveta: latinica, ćirilica, grčki, arapski, hebrejski, kineski/kanji, itd. Unicode

  • Simboli: matematički, monetarni, tehnički i drugi. Science Israel

  • Interpunkciju i kontrolne znakove (tab, novi red, itd.). Science Israel

  • Emotikone (emoji) — Unicode uključuje veliki broj emotikona i njihove varijante. Unicode


6. Unicode i ISO/IEC 10646

Unicode Standard je identičan međunarodnom standardu ISO/IEC 10646 u pogledu skupa znakova i kodnih tačaka — to znači da su oba standarda interoperabilna i obuhvataju iste kodne tačke. Unicode


7. Zašto je Unicode važan?

Pre Unicode-a, različiti sistemi koristili su različite kodne strane (npr. ASCII, ISO-8859-1, Windows-1252), što je dovodilo do problema sa kompatibilnošću — posebno pri prikazu i prenosu međunarodnog teksta. Unicode rešava taj problem time što pruža jedan zajednički standard koji obuhvata sve jezike i simbole. Unicode


8. Normalizacija

Unicode dozvoljava da iste vizuelne znakove predstave različite kombinacije kodova — na primer, é može biti jedan kod (U+00E9) ili kombinacija e + akcenat. To se zove normalizacija, i mora da se obradi ispravno prilikom poređenja i sortiranja tekstova. arXiv


9. Verzije Unicode Standarda

Unicode se redovno ažurira — dodaju se novi znakovi, skripte, simboli, emotikoni i popravke. Najnovija verzija u 2025. godini je Unicode 17.0, koja unapređuje skup sa hiljadama novih znakova i novih blokova karaktera. Reddit


10. Sažetak

Unicode je univerzalni standard za predstavljanje teksta u digitalnom svetu, koji omogućava da svi jezici i simboli budu kodirani jedinstveno i bez gubitaka.
On:

  • koristi jedinstvene kodne tačke (U+XXXXXX); Science Israel

  • ima veliki prostor od 1.114.112 mogućih kodova; Unicode

  • podržava više encoding formi (UTF-8, UTF-16, UTF-32); Unicode

  • obuhvata skoro sve poznate jezike, simbole i emotikone; Unicode

  • i omogućava globalnu razmenu tekstualnih podataka bez konflikata ili nečitljivosti. Unicode


Ako želiš, mogu ti dati i primere praktičnog korišćenja Unicode-a u programiranju (Python/JavaScript) ili objasniti kako Unicode funkcioniše “ispod haube” kada se kodira u fajlovima

No comments:

Post a Comment

AMD vs Intel

  AMD vs Intel AMD (Advanced Micro Devices) je globalno poznati proizvođač mikroprocesora ( CPU ) i grafičkih procesora ( GPU ), a takođe i...