Unicode

Kort om Unicode

Unicode er en kodetabell som omfatter alle mulige tegn fra alle verdens mulige skriftsystemer og språk kjent for mennesket. Den inkorporerer også tidligere kodetabeller som ASCII og ISO 8859-x, slik at den også er kompatibel med "gamle" maskiner. Blant annet anvendte, tidligere kodetabeller som, ISO 8859-15 seg av forhåndssammensatte tegn som ü, è, ö og å. Disse tegnene eksister i Unicode både som forhåndssammensatte tegn og som basis tegn med et kombinasjonstegn, eks. (¨)(`)(˚)(˜). Dette gjør at det kreves færre tegn og det tar mindre plass i kodetabellen.

Det er et grunnleggende prinsipp i Unicode - standardiseringen at når et tegn først er tilordnet et kodepunkt, skal denne tilordningen gjelde til evig tid, selv om tegnet skulle gå ut av bruk[...]. Unicode - kodepunktene fra U+0000 til U+007F er identiske med de tilsvarende ASCII - kodepunktene tilføyd det nødvendige antall ledende 0’er (Gerhard Skagestein; Kompendium, Representasjon av tegn og tekster, 2005:punkt 3.10.). Altså ASCII tabellen ligger inne i Unicode, og har bevart sine kodepunkter.

UTF-32:
UTF står for Unicode Transformation Formats. Unicode består av 21-biters kodepunkter, som representeres gjennom UTF-32, UTF-16, eller UTF-8. Det finnes flere UTF men jeg kommer ikke til å gå noe mer inn på det. UTF-32 er den enkleste transformasjonen fordi det kun er å supplere 11 ledende 0’er slik at vi får 32 biter. Og det er ikke så vanskelig å forstå at det er sløsing med plass. Dette vil nok bli litt klarere etter at jeg har gått gjennom de to andre UTF’ene.

UTF-16:
BMP står for Basic Multilanguage Plane. Dette kan man si er grunnplanet i Unicode - tabellen, som består av flere nivåer. I etasjene over finner vi tegn som brukes veldig sjelden, som bl a egyptiske hieroglyfer. For at man i UTF-16 skal få tilgang til disse spesielle tegnene er man nødt til å benytte seg av surrogatpar. Det er en ganske innviklet prosess som jeg ikke skal utdype veldig mye, men kan fortelle at surrogatparene består av 32 biter. Dette gjør det veldig lett å se om glyfen er i BMP eller utenfor, er det 16 biter så er det i BMP er 32 biter så er det utenfor. Dersom mange glyfer som vi bruker til daglig lå utenfor BMP ville UTF-16 vært veldig tungvint. Men siden de fleste tegnene vi trenger er innenfor BMP så er UTF-16 mye brukt.

UTF-8:
Unicode består av 21-biters kodepunkter og grunnen til det kommer tydeligst frem her. Det faktum at alle ASCII’s tegn begynner på 0 gjør det mulig å presse tegnene inn i èn byte. Man har altså funnet ut at dersom man sier at tegn innenfor ASCII begynner med 0 og tegn utenfor begynner med 1, blir det mulig å presse ASCII tegnene inn i èn byte. Smartheten ligger i det at alle ASCII’s tegn i utgangspunktet begynner med 0. Det at man mottar en byte og den starter med 0 vet man at det er et ASCII tegn og man behøver ikke å holde utkik etter flere bytes. Så lenge man holder seg innenfor ASCII er UTF-8 utrolig plassbesparende.
Men når man havner utenfor, f eks når man bruker tegn som æ, ø og å, starter som sagt byten på 1, som i sin tur forteller oss at vi vil motta 2 bytes. Disse 2 byte’ene vil kunne inneholde 11 bits fra representasjonen. Dukker det opp enda en 1’er foran forrige forteller det oss at vi kommer til å motta 3 bytes som rommer 16 biter. Og så til sist, dukker det opp nok en 1’er forteller det oss at vi vil motta 4 bytes som rommer 21 biter. Og da trengs det ikke flere bytes siden 21 biter tilsvarer samtlige tegn i Unicode pluss alle de tomme feltene.

Klikk på linken dersom du ønsker å vite mer om Unicode . Høyreklikk og velg åpne i nytt vindu dersom du ikke ønsker å forlate denne siden!

Til toppen av siden


Oppdatert 12. Oktober 2005 av Marius Lifvergren lifverg@online.no

Denne siden fyller kravene til XHTML 1.0 Strict

Valid CSS!