# Karaktereen kodeketa

**Karaktereen kodeketa** hizkuntza natural baten (alfabetoa, adibidez) karaktere bat beste sistema baten sinbolo bat bihurtzea ahalbidetzen duen metodoa da, esaterako, zenbaki bat edo, sistema elektriko batean, pultsu elektrikoen sekuentzia bat. Horretarako, kodeketa erregelak edo kodeketa arauak aplikatzen dira. Metodo hauek karaktere bat beste sistema baten sinbolo bat bihurtzeko modua zehazten dute. Honen adibideak dira Morse kodea, ASCII kodea edo UTF-8 kodea.

## Historia

Lehendabiziko kodeak kodeketa sistemetan eta eskuzko kodeketan oinarrituta daude, hala nola, Braille, itsas seinaleen banderak edo Bacon kodea. Teknika elektriko eta elektromekanikoen agerpenarekin, kode horiek lehenengo makinen ahalmen eta mugetara moldatu ziren. Ezagutzen den transmisio elektrikoko lehenengo karaktere kodea Morse kodea da. 1840ko hamarkadan sortu zen eta lau karaktereen (seinale laburra, seinale luzea, hutsune laburra, hutsune luzea) sistema erabiltzen zuen luzera aldakorreko kodeak sortzeko.Karaktereen kodeketa sistemen adibide ohikoenak Morse kodea, Baudot kodea, ASCII kodea eta UNICODE dira.

Baudot kodea, bost biteko kodeketa sistema, Émile Baudot-ek sortu zuen 1870an. Geroago, 1959an, AEBetako armadak Fieldata kodea sortu zuen, sei edo zazpi biteko kodea. Nahiz eta Fieldata kodeak momentuan zeuden arazo asko konpondu, ez zituen bere helburuak bete eta azkar desagertu zen. 1963an, lehenengo ASCII kodea sortu zuen ASCII batzordeak (batzorde honetan Fieldata batzordeko kide batek gutxienez parte hartu zuen). ASCII kodeak Fieldata kodearen huts egiteak konpondu zituen kode errazago baten bidez. 1967an, letra xeheak sartu eta bestelako arazoak konpondu zituzten, horren ondorioz, ASCII67 sortu zen.

Karaktere kodeketa unibertsalki aldagarriak garatzeko nahian, 1980an ikertzaileak arazo baten aurrean aurkitu ziren. Alde batetik, karaktere berriak sartzeko bit gehiago erabiltzea nahitaezkoa zirudien. Bestalde, nahiko txikia den Latindar alfabetoko karaktere-jokoaren erabiltzaileentzat (konputagailuen erabiltzaileen gehiengoa) bit gehigarri horiek baliabide informatiko garesti eta urriak xahutzea zen.

Azkenik, UNICODEk aurkitu eta garatutako soluzioa karaktere bakoitzak beti zuzenean bit sekuentzia jakin bati dagokion ustea baztertzea izan zen. Horren ordez, lehendabizi karaktereak zenbaki abstraktuen forma duen bitarteko errepresentazio unibertsal bati esleituko lirateke, kode-puntuak deritzenak. Horren ondoren, testuinguruaren arabera, kode-puntuak hainbat eratara eta karaktere bakoitzeko hainbat bit zenbaki lehenetsiekin irudikatuko lirateke.

## Terminologia

* Karaktere bat balio semantikoa duen testuaren unitate txikiena da.
* Karaktere-joko bat hizkuntza anizkoitzek erabili dezaketen karaktereen bilduma bat da. Adibidez: Ingelesak eta beste europar hizkuntzek karaktere-joko latindarra erabiltzen dute, baina karaktere-joko greziarra soilik greziar hizkuntzak erabiltzen du.
* Kodetutako karaktere-joko batean karaktere bakoitza zenbaki bakar bati dagokio.
* Kodetutako karaktere-joko baten kode-puntu bat karaktere-jokoan onartutako edozein balio da.
* Kode unitate bat errepertorio baten karaktere bakoitza kodetzeko erabiltzen den bit sekuentzia da, kodeketa eredu bat emanda.

## Unicode kodeketa eredua

Unicode eta ISO/IEC 10646 Universal Character Set elkarrekin batera karaktereen kodeketa moderno eta bateratua osatzen dute. Karaktereak zuzenean zortzikote (byte) bihurtu ordez, lehendabizi, zein karaktere dauden erabilgarri eta zein diren beraien zenbaki naturalak (kode-puntu) definitzen da. Gero, nola kodetzen diren zenbaki horiek tamaina finkoko zenbaki naturalen serie batera (kode unitate) definitzen da. Azkenik, nola kodetzen diren zenbaki horiek zortzikoteen sekuentzia batera adierazten da. Deskonposaketa honen helburua hainbat eratara kodetu daitekeen karaktereen multzo unibertsala ezartzea da. Hauek dira eredu modernoan erabiltzen diren terminoak:

Karaktereen errepertorioa sistema batek onartzen duen karaktere abstraktuen multzo osoa da.

Kodetutako karaktere multzoa karaktereak kode-puntuetara (kode-puntu bakoitzak karaktere bat irudikatzen du) esleitzen dituen funtzioa da.

Karaktereen kodeketa eredua kode-puntuak kode unitateetara esleitzea da, zenbakiak luzera finkoko bit sekuentzia bezala irudikatzen dituen sistema batean biltegiratzea errazteko.

Karaktereen kodeketa eskema kode unitateak zortzikoteen sekuentzia batera esleitzea da, zortzikoteetan oinarritutako fitxategi sistema baten biltegiratzea edo zortzikoteetan oinarritutako sare baten bidezko transmisioa errazteko. Karaktereen kodeketa eskema sinple bat UTF-8 da. Adibidez: XML baten xml:lang atributua.

Azkenik, maila altuagoko protokolo bat egon daiteke, Unicode karaktere baten aldaera partikularra aukeratzeko informazio gehigarria ematen duena.

Unicode ereduak karaktere-mapa terminoa erabiltzen du, karaktere sekuentzia bati byte sekuentzia bat zuzenean esleitzen dion sistema historikoentzat.

## Erreferentziak

## Kanpo estekak