Jump to content

ASCII, Windows-1257, Unicode, UTF-8 u.c. kodēšanas sistēmas


Vilx-
 Share

Recommended Posts

Šis pastāsts ir par to, ko nozīmē un ar ko atšķiras dažādas kodējumu tabulas, kā, piemēram, ASCII, Windows-1257, UTF-8, Unicode, u.c. Stāsts nebūs gluži precīzs, taču vienkāršošu tikai nelielas nianses, kuras netraucē galvenajai domai.

 

Viss sākās sensenos laikos, kad datori vēl bija nīkulīgi, un par dažādām valodām ļaudis neuztraucās. Lai datorā glabātu tekstu viņi izdomāja, ka katram burtam būs pietiekoši tieši ar vienu baitu. Baits, kā zinām, var pieņemt 256 dažādas vērtības - no 0 līdz 255. Tad arī katrai vērtībai viņi piekabināja vienu simbolu un jutās labi. Šo kodējumu sauc par ASCII un to var aplūkot šajā lappusē: http://www.lookuptables.com/

 

Laikam ejot tomēr datoru sāka gribēties lietot arī citās valodās, ne tikai angļu, un tāpēc ļaudis sāka domāt, kā apieties. Un izdomāja - standarta latīņu burtiem, cipariem un simboliem bija iedalītas vērtības no 0 līdz 127. 128-255 bija dažādi jocīgi simboli, kurus šad un tad varēja izmantot, bet pārsvarā nevajadzēja. Tad nu viņi ņēma, un šīm vērtībām piedefinēja citus simbolus. Katra valsts pa savam, jo visām valstīm ar nieka 128 vērtībām nepietika. Nereti arī vienā valstī izdomāja ne tikai vienu veidu, kā piekārtot burtus vērtībām. Tā radās tādi kodējumi, kā, piemēram, Windows-1257 (jeb ISO-8859-13) u.c.

 

Tomēr tagad nu sanāca kā pie Bābeles torņa - katrs par sevi no šiem kodējumiem bija OK, bet kad vajadzēja divas valodas savest kopā, bija sūdi. Jo, piemēram, vērtība, kas latviešu kodējumā atbilda burtam ā, krievu kodējumā bija в utml.

 

Tad nu atkal gudri vīri sanāca kopā un domāja, ko nu darīt, kā nu rīkoties. Un izdomāja - nafig, metam prom visu veco sistēmu, taisam pa jaunam un kārtīgi. Un dzima Unicode. Tajā katram simbolam izmantoja tieši 2 baitus. Pa diviem baitiem kopā jau sanāk 65536 dažādu vērtību, un tur jau vietas pietiek visu valstu burtiem kopā un vēl šādiem tādiem simboliem. Nu, izņemot ķīniešus, bet viņi jau vienmēr ir bijuši atkritēji. Par ķīniešu kodēšanas sistēmām es neko nezinu. :oops:

 

Unicode ir laba un jauka, bet, diemžēl, pilnīgi nesavietojama ar vecajām kodēšanas sistēmām. Tur tiek daudz izmantotas arī baitu vērtības no 0 līdz 32, kas daudzās sistēmās ir rezervētas (piemēram, e-pasti). Lai ar to apietos, tika izdomāti dažādas UTF kodēšanas sistēmas. Piemēram, UTF-7, UTF-8, UTF-16 u.c. UTF ir saīsināts no Unicode Transformation Format. UTF dara tā, ka parastos burtus (vērtības līdz 128 neieskaitot) apzīmē tāpat kā parasti, bet lielākus apzīmē ar vairākiem baitiem. Piemēram, latviešu mīkstinātie simboli apzīmējas ar diviem baitiem. Kā tieši notiek pāreja no UTF-8 uz UNICODE un otrādi, var palasīties http://en.wikipedia.org/wiki/UTF-8. Tas ir diezgan vienkāršs un viennozīmīgs process, tomēr to atstāstīt šeit būtu gari un lieki.

 

Ir arī vēl citi kodēšanas veidi, taču šie ir populārākie. Ja gribas uzzināt vairāk par tēmu, labs sākuma punkts lasīšanai varētu būt http://en.wikipedia.org/wiki/Unicode.

Link to comment
Share on other sites

Īss, viegli saprotams un galvenais, ka kādam noderēs šis raksts ;)

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...