Unikoda rakstzīmju kodēšanas skaidrojums

RUNSTUDIO/The Image Bank/Getty Images
Lai dators varētu saglabāt cilvēkiem saprotamu tekstu un skaitļus, ir nepieciešams kods, kas pārveido rakstzīmes skaitļos. Unikoda standarts definē šādu kodu, izmantojot rakstzīmju kodējumu.
Iemesls, kāpēc rakstzīmju kodēšana ir tik svarīga, ir tāpēc, ka katra ierīce var parādīt vienu un to pašu informāciju. Pielāgota rakstzīmju kodēšanas shēma var lieliski darboties vienā datorā, taču problēmas radīsies, ja to pašu tekstu nosūtīsit kādam citam. Tas nezinās, par ko jūs runājat, ja vien tas neizprot arī kodēšanas shēmu.
Rakstzīmju kodēšana
Rakstzīmju kodēšana katrai rakstzīmei, ko var izmantot, piešķir numuru. Jūs varētu izveidot rakstzīmju kodējumu tieši tagad.
Piemēram, es varētu teikt, ka vēstule A kļūst par skaitli 13, a=14, 1=33, #=123 un tā tālāk.
Šeit stājas spēkā nozares mēroga standarti. Ja visa datoru nozare izmanto vienu un to pašu rakstzīmju kodēšanas shēmu, katrs dators var attēlot vienas un tās pašas rakstzīmes.
Kas ir Unicode?
ASCII (Amerikas standarta kods informācijas apmaiņai) kļuva par pirmo plaši izplatīto kodēšanas shēmu. Tomēr tas ir ierobežots līdz 128 rakstzīmju definīcijām. Tas ir piemērots visbiežāk sastopamajām angļu rakstzīmēm, cipariem un pieturzīmēm, taču tas ir nedaudz ierobežojošs pārējai pasaulei.
Protams, pārējā pasaule vēlas to pašu kodēšanas shēmu arī saviem varoņiem. Tomēr kādu laiku, atkarībā no jūsu atrašanās vietas, vienam un tam pašam ASCII kodam varēja tikt parādīta cita rakstzīme.
Galu galā citas pasaules daļas sāka veidot savas kodēšanas shēmas, un lietas sāka kļūt mazliet mulsinošas. Bija nepieciešamas ne tikai dažāda garuma kodēšanas shēmas, bet arī programmas, lai noskaidrotu, kura kodēšanas shēma tām bija jāizmanto.
Kļuva skaidrs, ka ir nepieciešama jauna rakstzīmju kodēšanas shēma, un tieši tad tika izveidots Unicode standarts. Unicode mērķis ir apvienot visas dažādās kodēšanas shēmas, lai pēc iespējas ierobežotu sajaukšanu starp datoriem.
Mūsdienās Unicode standarts definē vērtības vairāk nekā 128 000 rakstzīmēm, un to var redzēt Unikoda konsorcijs . Tam ir vairākas rakstzīmju kodēšanas formas:
- A ir U+0041
- a ir U+0061
- 1 ir U+0031
- # ir U+0023
Piezīme: UTF nozīmē Unicode Transformation Unit.
Koda punkti
Koda punkts ir vērtība, kas ir norādīta rakstzīmei Unikoda standartā. Vērtības saskaņā ar Unicode tiek rakstītas kā heksadecimāli skaitļi, un tām ir prefikss U+ .
Piemēram, lai kodētu rakstzīmes, kuras apskatījām iepriekš:
Šie koda punkti ir sadalīti 17 dažādās sadaļās, ko sauc par plaknēm, kuras identificē ar cipariem no 0 līdz 16. Katrā plaknē ir 65 536 koda punkti. Pirmajā plaknē 0 ir visbiežāk lietotās rakstzīmes, un tā ir pazīstama kā pamata daudzvalodu plakne (BMP).
Koda vienības
Kodēšanas shēmas sastāv no koda vienībām, kuras izmanto, lai nodrošinātu indeksu, kur rakstzīme atrodas plaknē.
Apsveriet UTF-16 kā piemēru. Katrs 16 bitu numurs ir koda vienība. Koda vienības var pārveidot par koda punktiem. Piemēram, plakanās nots simbola ♭ koda punkts ir U+1D160, un tas atrodas Unikoda standarta otrajā plaknē (Papildu ideogrāfiskā plakne). Tas tiktu kodēts, izmantojot 16 bitu koda vienību U+D834 un U+DD60 kombināciju.
BMP koda punktu un koda vienību vērtības ir identiskas. Tas ļauj izmantot UTF-16 saīsni, kas ietaupa daudz vietas krātuvē. Lai attēlotu šīs rakstzīmes, ir jāizmanto tikai viens 16 bitu skaitlis.
Kā Java izmanto Unicode?
Java tika izveidots aptuveni tajā laikā, kad Unicode standartam bija vērtības, kas definētas daudz mazākam rakstzīmju kopumam. Toreiz tika uzskatīts, ka ar 16 bitiem būs vairāk nekā pietiekami, lai kodētu visas rakstzīmes, kas jebkad būtu vajadzīgas. Paturot to prātā, Java tika izstrādāta UTF-16 lietošanai. Datu tips char sākotnēji tika izmantots, lai attēlotu 16 bitu unikoda koda punktu.
Kopš Java SE v5.0 simbols apzīmē koda vienību. Rakstzīmju attēlošanai, kas atrodas pamata daudzvalodu plaknē, nav lielas atšķirības, jo koda vienības vērtība ir tāda pati kā koda punktam. Tomēr tas nozīmē, ka citu plakņu varoņiem ir nepieciešamas divas rakstzīmes.
Svarīgi atcerēties, ka viens rakstzīmju datu tips vairs nevar attēlot visas unikoda rakstzīmes.