„Unicode“ simbolių kodavimo paaiškinimas

Kad kompiuteris galėtų saugoti žmonėms suprantamą tekstą ir skaičius, reikia modifikuoti kodą personažai į skaičius. „Unicode“ standartas apibūdina tokį kodą naudodamas simbolių kodavimą.

Priežastis, kodėl simbolių kodavimas yra tokia svarbi, yra tai, kad kiekvienas įrenginys gali rodyti tą pačią informaciją. Tinkinta simbolių kodavimo schema gali puikiai veikti viename kompiuteryje, tačiau problemų atsiras, jei tą patį tekstą siųsite kitam. Jis nežinos, apie ką jūs kalbate, nebent supranta ir kodavimo schemą.

Simbolių kodavimas

Bet koks simbolių kodavimas reiškia kiekvieno simbolio, kurį galima naudoti, skaičių. Jau dabar galite padaryti simbolių kodavimą.

Pavyzdžiui, galėčiau pasakyti, kad laiškas A tampa skaičiumi 13, a = 14, 1 = 33, # = 123 ir t. t.

Čia galioja visos pramonės standartai. Jei visa kompiuterių pramonė naudoja tą pačią simbolių kodavimo schemą, kiekvienas kompiuteris gali rodyti tuos pačius simbolius.

Kas yra Unicode?

ASCII (Amerikos standartinis informacijos mainų kodas)

instagram viewer
tapo pirmąja plačiai paplitusia kodavimo schema. Tačiau tai apsiriboja tik 128 simbolių apibrėžimais. Tai gerai tinka įprastiems angliškiems rašmenims, skaičiams ir skyrybos ženklams, tačiau tai šiek tiek riboja likusį pasaulį.

Natūralu, kad likęs pasaulis nori tokios pačios kodavimo schemos ir jų personažams. Tačiau šiek tiek laiko, priklausomai nuo to, kur buvote, tam pačiam ASCII kodui galėjo būti rodomas skirtingas simbolis.

Galų gale, kiti pasaulio kraštai pradėjo kurti savo kodavimo schemas, ir viskas ėmė truputį keistis. Norint išsiaiškinti, kokią kodavimo schemą jos turėjo naudoti, reikėjo ne tik skirtingo ilgio kodavimo schemų.

Tapo akivaizdu, kad reikia naujos simbolių kodavimo schemos, būtent tada, kai buvo sukurtas „Unicode“ standartas. „Unicode“ tikslas yra suvienodinti visas skirtingas kodavimo schemas, kad būtų kuo labiau sumažinta painiava tarp kompiuterių.

Šiomis dienomis „Unicode“ standartas nustato daugiau nei 128 000 ženklų reikšmes ir jas galima pamatyti „Unicode“ konsorciumas. Jis turi keletą simbolių kodavimo formų:

  • UTF-8: Anglų kalbos rašmenims koduoti naudojamas tik vienas baitas (8 bitai). Jis gali naudoti baitų seką kitiems simboliams koduoti. UTF-8 yra plačiai naudojamas el. Pašto sistemose ir internete.
  • UTF-16: Naudoja du baitus (16 bitų) dažniausiai naudojamiems simboliams koduoti. Jei reikia, papildomus simbolius galima pavaizduoti 16 bitų skaičių pora.
  • UTF-32: Rašmenims užkoduoti naudojami keturi baitai (32 bitai). Tapo akivaizdu, kad augant „Unicode“ standartui, 16 bitų skaičius yra per mažas, kad būtų galima atvaizduoti visus simbolius. UTF-32 gali pavaizduoti kiekvieną „Unicode“ ženklą kaip vieną skaičių.

Pastaba: UTF reiškia „Unicode Transformation Unit“.

Kodo taškai

Kodo taškas yra vertė, kurią simbolis suteikia „Unicode“ standarte. Pagal Unicode reikšmės rašomos šešioliktainiais skaičiais ir turi priešdėlį U +.

Pavyzdžiui, norint užkoduoti simbolius, į kuriuos žiūrėjome anksčiau:

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

Šie kodo taškai yra padalinti į 17 skirtingų skyrių, vadinamų plokštuma, žymima skaičiais nuo 0 iki 16. Kiekvienoje plokštumoje yra 65 536 kodo taškai. Pirmoji plokštuma, 0, turi dažniausiai naudojamus simbolius ir yra žinoma kaip pagrindinė daugiakalbė plokštuma (BMP).

Kodo vienetai

Kodavimo schemos yra sudarytos iš kodų vienetų, kurie naudojami pateikti indeksą, pagal kurį požymis yra plokštumoje.

Apsvarstykite UTF-16 kaip pavyzdį. Kiekvienas 16 bitų skaičius yra kodo vienetas. Kodo vienetus galima paversti kodo taškais. Pvz., Plokščio užrašo simbolis a turi taško kodą U + 1D160 ir gyvena antroje „Unicode“ standarto plokštumoje (papildoma ideografinė plokštuma). Jis bus užkoduotas naudojant 16 bitų kodo vienetų U + D834 ir U + DD60 derinį.

BMP kodo taškų ir kodo vienetų vertės yra tapačios. Tai leidžia „UTF-16“ spartųjį klavišą taupyti daug vietos saugykloje. Tiems simboliams pavaizduoti reikia tik vieno 16 bitų skaičiaus.

Kaip „Java“ naudoja „Unicode“?

„Java“ buvo sukurtas tuo metu, kai „Unicode“ standartas turėjo reikšmes, apibrėžtas daug mažesniam simbolių rinkiniui. Tuomet buvo manoma, kad 16 bitų bus daugiau nei pakankamai, kad būtų užkoduoti visi simboliai, kurių kada nors prireiks. Atsižvelgiant į tai, „Java“ buvo sukurta naudoti UTF-16. „Char“ duomenų tipas iš pradžių buvo naudojamas 16 bitų „Unicode“ kodo taškui pavaizduoti.

Nuo „Java SE v5.0“ char reiškia kodo vienetą. Ženklų, esančių pagrindinėje daugiakalbėje plokštumoje, atvaizdavimas nedaug skiriasi, nes kodo vieneto vertė yra tokia pati kaip kodo taško. Tačiau tai reiškia, kad kitų plokštumų veikėjams reikia dviejų ženklų.

Svarbu atsiminti, kad vienas char duomenų tipas nebegali atstovauti visiems „Unicode“ simboliams.

instagram story viewer