Kodējumi

Alfabēts ir simbolu kopa, ar ko raksta noteiktā valodā. Pieņemts uzskatīt, ka latviešu valodas alfabētā ir 33 burti, angļu alfabētā - 26 burti, utml. Faktiski, simbolu abās valodās ir vairāk, jo atšķiras arī lielie un mazie burti, pieturaszīmes, utml. Atkarībā no dažām niansēm (vai defisi(-) un domuzīmi(--), kā arī atverošo un aizverošo pēdiņu uzskata par vienādiem vai dažādiem simboliem), tipiska latviešu valodas teksta pierakstam ir vajadzīga aptuveni 88-90 simbolu kopa. Šo alfabētu sk. zemāk:

a A ā Ā b B c C c Č d D e E ē Ē f F g G gj Gj 
h H i I ī Ī j J k K ķ Ķ l L ļ Ļ m M n N ņ Ņ 
o O p P r R s S š Š t T u U ū Ū v V z Z ž Ž
0 1 2 3 4 5 6 7 8 9 . ? ! , ; : " - ' ( ) _(atstarpe)

Iespēju sadalīt katru vārdu atsevišķos burtos parasti rodas no atstarpēm starp burtiem (dažās valodās ir burti, kuru vidū ir līdzīgas atstarpes, piemēram "Ы" - kirilicas cietais i). Šādi "nesakarīgi" burti, ko nevar uzvilkt, neatraujot rakstāmo no papīra var radīt divdomīgas situācijas. Piemēram vārdu "ЬIЬ" varētu izlasīt divos dažādos veidos, ja alfabēts sastāvētu no sekojošiem 3 burtiem:

Ь   ЬI   IЬ

Par laimi, kirilicas alfabētos simbola "IЬ" nemaz nav, tādēļ var viennozīmīgi dalīt vārdu burtos. Japāņu, ķīniešu un korejiešu rakstībā arī mēdz būt "nesakarīgas" rakstu zīmes, tādēļ rakstības sistēma nosaka, ka ikvienam simbolam ir jāierakstās kvadrātiņā - simbolu robežas palīdz noteikt to regulārais izvietojums.

Savukārt, ja teksts rakstīts kursīvā, kur burtus savelk kopā, tad sadalīšanai burtos vajadzīgas papildu zināšanas par doto rakstības sistēmu. Kursīva rakstības sistēma ir raksturīga, piemēram, dažādu Eiropas alfabētu rokrakstiem kā arī arābu valodai - gan drukātajai, gan ar roku rakstītajai.

Kodējumi

Konkrēto simbolu kopu var datora atmiņā attēlot ar kodējumu palīdzību. Kodējums ir funkcija no naturāliem skaitļiem (kodiem) uz alfabēta simboliem. Alfabēta simbolus kodējumos aplūko kā logjiskas vienības, atrauti no to grafiskā izskata. Piemēram, lielajam latīņu burtam "A" ir viens un tas pats kods, neatkarīgi no fonta (A), izmēra, slīpuma (A) vai treknuma (A). Toties grieķu burtam "A" (alpha) jebkurā gadījumā būs cits kods, pat ja tas dotajā fontā izskatās tieši tāpat kā latīņu "A".

Kodu tabulu piemēri

ASCII - American Standard Code for Information Interchange a.k.a ISO 646-1973 (international) Tas ir 7 bitu kods, tātad satur 128 dažādus simbolus - ciparus, pieturzīmes, latīņu burtus, speciālos simbolus. Tas ir piemērots angļu valodas alfabētiem, tajā tomēr nav citu Rietumeiropas valodu modificēto burtu un pat tādu bieži lietotu simbolu kā "£" (mārciņas simbols), "§" (paragrāfs), "€" (eiro simbols), utml. ASCII bieži lieto e-pasta vēstulēs, īsziņās un citur, ja nav garantijas, ka citi simboli tiks pārraidīti pareizi.

ASCII simbolus parasti satur arī citi kodējumi, piemēram, ISO Latin1 jeb ISO-8859-1 (ASCII plus simboli daudzu Eiropas tautu valodām - franču, vācu, spāņu, zviedru, utml.).

Unicode - 16 bitu kods, visu moderno valodu visi simboli, ieskaitot hieroglifus, arābu, sanskrita, korejiešu, kirilicas utml. simbolus.

UTF-8 kodējums (encoding)

UTF-8 ir efektīvs Unikoda stringu kodējums, kurā ņemts vērā, ka vairums teksta komunikācijās ir no ASCII repertuāra (jāņem vērā tikai pēdējie 7 biti); un ir optimizēts šiem simboliem. UTF-8 kodējumu izmanto Java iekšējai stringu glabāšanai kā arī tas ir izplatīta unikoda izpausme Internetā (sk. [RFC2044]).

Simbolu kodēšana

Atsevišķos simbolus iekodē saskaņā ar sekojošiem likumiem: ASCII simbolus iekodē kā vienu baitu, vairumu modificēto latīņu burtu (t.sk. latviešu un vācu), kiriliskos, grieķu, ebreju, arābu, utml. burtus iekodē ar diviem baitiem un pārējos (piemēram, hieroglifus) ar trim baitiem.

  • Simbolus, kuru unikoda numuri ir intervālā no '0000' līdz '007f' (no 0 līdz 127 decimālajā sistēmā) kodē ar vienu baitu - atstāj tos bez izmaiņām. Šis intervāls sastāv no ASCII simboliem.
  • Simbolus intervālā no '€' līdz '߿' (no 256 līdz 2047 decimālajā sistēmā) kodē kā divus baitus. Šai nolūkā simbola unikoda numura binārajā pierakstā esošos 11 zīmīgos bitus sadala divos gabalos - pirmo baitu veido virknīte "110" un 5 vecākie biti, bet otro baitu veido virknīte "10" un 6 jaunākie biti.
  • Simbolus intervālā no 'ࠀ' līdz '￿' kodē ar trim baitiem. Šai nolūkā simbola unikoda bināro pierakstu dala 3 daļās. Pirmā daļa ir virknīte "1110" un 4 vecākie biti, tad virknīte "10" un nākamie 6 biti, visbeidzot virknīte "10" un jaunākie 6 biti.

    Piemēram, simbolus "Rīga" ar UTF-8 attēlo šādi: 52 ("R" ASCII numurs), C4+AB ("ī" attēlo ar 2 baitiem), 67 ("g" ASCII numurs), 61 ("a" ASCII numurs). Praktiski to var pārbaudīt, ierakstot Google meklēšanas lodziņā stringu "Rīga". Parādīsies URL adrese: http://www.google.com/search?q=R%C4%ABga, t.i. "ī" URL adresē pārkodēsies par UTF-8 un pēc tam katram šādam heksadecimālajam baitam vēl priekšā ir procenta simbols - t.i. viena simbola "ī" vietā tagad ir 6 simboli: "%C4%AB".

Literatūra

RFC2044
UTF-8 standarts