Nauja

„Unicode“ simbolių kodavimo paaiškinimas

„Unicode“ simbolių kodavimo paaiškinimas


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Kad kompiuteris galėtų saugoti žmonėms suprantamą tekstą ir skaičius, turi būti kodas, paverčiantis simbolius skaičiais. „Unicode“ standartas apibūdina tokį kodą naudodamas simbolių kodavimą.

Priežastis, kodėl simbolių kodavimas yra toks svarbus, yra tas, 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) 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, atsižvelgiant į tai, 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 pradėjo 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ų galima kiek įmanoma sumažinti painiavą tarp kompiuterių.

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

  • UTF-8: Anglų 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 ženklus 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 +.

Pvz., 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ų sekcijų, vadinamų plokštuma, žymima skaičiais nuo 0 iki 16. Kiekvienoje plokštumoje yra 65 536 kodo taškai. Pirmojoje plokštumoje 0 yra dažniausiai naudojami simboliai ir ji vadinama pagrindine daugiakalbe plokštuma (BMP).

Kodo vienetai

Kodavimo schemos yra sudarytos iš kodų vienetų, kurie naudojami pateikti indeksą, pagal kurį simbolis 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 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 sukurta 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.



Komentarai:

  1. Stille

    I apologize that I intervene, would like to propose another solution.

  2. Ber

    Na, taip ...

  3. Mauk

    Of course, I'm sorry, this doesn't suit me at all. Ačiū už pagalbą.



Parašykite pranešimą