Pojasnilo kodiranja znakov Unicode

Da bi računalnik lahko shranjeval besedilo in številke, ki jih človek lahko razume, mora biti koda, ki se spremeni znakov v številke. Standard Unicode definira takšno kodo z uporabo kodiranja znakov.

Razlog za kodiranje znakov je tako pomemben, da lahko vsaka naprava prikaže iste podatke. Shema za kodiranje znakov po meri lahko na enem računalniku deluje čudovito, težave pa se bodo pojavile, če isto besedilo pošljete nekomu drugemu. Ne bo vedel, o čem govorite, če tudi ne razume sheme kodiranja.

Kodiranje znakov

Vse kodiranje znakov vsakemu znaku, ki ga lahko uporabimo, dodeli številko. Takoj lahko naredite kodiranje znakov.

Na primer, lahko bi rekel, da slov A postane število 13, a = 14, 1 = 33, # = 123 in tako naprej.

Tu nastopijo standardi za celotno industrijo. Če celotna računalniška industrija uporablja isto shemo kodiranja znakov, lahko vsak računalnik prikaže iste znake.

Kaj je Unicode?

ASCII (Ameriška standardna koda za izmenjavo informacij) postala prva razširjena shema kodiranja. Vendar je omejena na samo 128 definicij znakov. To je v redu za najpogostejše angleške črke, številke in ločila, vendar je za preostali svet nekoliko omejujoče.

instagram viewer

Seveda si tudi preostali svet želi enake sheme kodiranja za svoje znake. Toda za malo, čeprav bi bilo odvisno od tega, kje ste bili, se je lahko za isto ASCII kodo prikazal drugačen znak.

Na koncu so tudi drugi deli sveta začeli ustvarjati svoje sheme kodiranja in stvari so se začele nekoliko zmediti. Ne le, da so bile sheme kodiranja različnih dolžin, programi, ki so bili potrebni, da bi ugotovili, katero shemo kodiranja naj bi uporabili.

Pokazalo se je, da je potrebna nova shema kodiranja znakov, takrat je bil ustvarjen standard Unicode. Cilj Unicode je poenotiti vse različne sheme kodiranja, tako da je mogoče zmede med računalniki čim bolj omejiti.

Te dni standard Unicode določa vrednosti za več kot 128.000 znakov in jih je mogoče videti na Konzorcij Unicode. Ima več oblik kodiranja znakov:

  • UTF-8: Za kodiranje angleških znakov uporablja samo en bajt (8 bitov). Za kodiranje drugih znakov lahko uporabi zaporedje bajtov. UTF-8 se pogosto uporablja v e-poštnih sistemih in na internetu.
  • UTF-16: Za kodiranje najpogosteje uporabljenih znakov uporablja dva bajta (16 bitov). Po potrebi lahko dodatne znake predstavimo s parom 16-bitnih števil.
  • UTF-32: Za kodiranje znakov uporablja štiri bajte (32 bitov). Potem ko je standard Unicode naraščal, je 16-bitno število premalo, da bi lahko predstavljalo vse znake. UTF-32 lahko predstavi vsak znak Unicode kot eno številko.

Opomba: UTF pomeni enoto za transformiranje Unicode.

Kode točke

Kodna točka je vrednost, ki jo poda znak v standardu Unicode. Vrednosti v skladu z Unicode so zapisane kot šestnajstične številke in imajo predpono U +.

Na primer, za kodiranje znakov, ki smo si jih ogledali prej:

  • A je U + 0041
  • a je U + 0061
  • 1 je U + 0031
  • # je U + 0023

Te kodne točke so razdeljene na 17 različnih odsekov, imenovanih ravnine, označenih s številkami od 0 do 16. Vsaka ravnina ima 65.536 kodnih točk. Prva ravnina 0 ima najpogosteje uporabljene znake in je znana kot Osnovna večjezična ravnina (BMP).

Enote kode

Sheme kodiranja so sestavljene iz kodnih enot, ki se uporabljajo za podajanje indeksa, kje je znak postavljen na ravnini.

Kot primer si oglejte UTF-16. Vsaka 16-bitna številka je kodna enota. Enote kode lahko spremenite v kodne točke. Na primer, simbol ravne note ♭ ima kodno točko U + 1D160 in živi na drugi ravnini standarda Unicode (Dopolnilna ideografska ravnina). Zakodiran bi bil s kombinacijo 16-bitnih kodnih enot U + D834 in U + DD60.

Za BMP so vrednosti kodnih točk in kodnih enot identične. To omogoča bližnjico za UTF-16, ki prihrani veliko prostora za shranjevanje. Za predstavitev teh znakov mora uporabiti samo eno 16-bitno številko.

Kako Java uporablja Unicode?

Java je bil ustvarjen približno v času, ko je imel standard Unicode določene vrednosti za veliko manjši nabor znakov. Takrat je bilo videti, da bo 16-bitnih več kot dovolj za kodiranje vseh znakov, ki bodo kdaj potrebni. Glede na to je bila Java zasnovana za uporabo UTF-16. Vrsta podatkov char je bila prvotno uporabljena za predstavljanje 16-bitne kodne točke Unicode.

Ker Java SE v5.0, znak predstavlja kodno enoto. Za predstavljanje znakov, ki so v osnovni večjezični ravnini, je malo drugače, ker je vrednost kodne enote enaka kodni točki. Vendar pa to pomeni, da sta za lika na drugih ravninah potrebna dva znaka.

Pomembno si je zapomniti, da ena vrsta podatkov o charu ne more več predstavljati vseh znakov Unicode.