Digital representasjon av bokstaven Å

Created by Yaldar Rahimie-mail on August 17, 2003

Digital representasjon av bokstaven Å

Datamaskinverden er binær digital. Det vil si at digitale datamaskiner arbeider med binære tall eller biter. Disse to binære verdiene, 0 og 1 er tilstrekkelig for å kode tall, lyd, bilder, video og tekst. For å representere tekst, bruker man en tabell med tegn og en binær rekke som skal representere det/de tegnet/tegnene som til slutt utgjør en tekst. Før fantes det ingen de jure (rettmessig) standard for hvordan tegn skulle lagres, så det var mange forskjellige standarder med plass til få tegn. Dermed prioriterte man kun internasjonale tegn (etter det engelske/amerikanske alfabetet), og ikke nasjonale tegn som bokstaven Å.

Representasjon i ASCII (ASCII = The American Standard Code for Information Interchange) Den amerikanske standardiseringsorganisasjon ANSI (American National Standards Institute) med fler, utviklet et tegnsett bestående av 7-bits som kan representere 128 forskjellige tegn, bedre kjent som ASCII. ASCII var den første de jure standarden og tenkt som en standard kode som skulle "binde" sammen ulike typer av IT-utstyr. Standarden inneholder det engelske alfabet (små og store bokstaver) pluss tallene 0-9. De øvrige plassene er dedikert til kontrolltegn og en del spesialtegn, men ingen mulighet for nasjonale tegn. Man tenkte ikke på kompatibilitet på 60 tallet, så for eksempel Norge byttet ut tegnene i ASCII kodetabellen B5, C5, D5, B7, C7 og D7 (altså tegnene: [ / ] { | } ) med henholdsvis Æ,Ø,Å og æ,ø,å. Dette førte til at det ble utviklet en egen ASCII for det norske markedet kalt ISO646-60. Bokstaven Å representeres ikke her på dette tidspunktet.

Representasjon i ISO 646-60 ISO 646-60 (International Organization for Standardization)(Norsk ASCII) Den internasjonale standardiseringsorganisasjonen ISO overtok arbeidet med å løse problemet med lokale tilpasninger. ISO 646 ble utviklet. Denne kunne håndtere nasjonale tegn (f.eks æ,ø,å i norge) ved at enkelte tegn kunne erstattes med lokale tilpasninger. i Norge ble, som sagt tidligere, tegnene { | } [ \ ] byttet ut med æ ø å Æ Ø Å. Den norske versjonen av ISO 646 fikk navnet 646-60 og det er Norsk Standard som har ansvaret for denne. Bokstaven Å representeres i ISO 646-60 med verdien 101 1101 (5D) = 93 6 '

Representasjon i ISO 8859 ISO 8859 bygger på ISO646-60. Forskjellen er at denne versjonen har støtte for 96 ekstra tegn pluss at det er 28 udefinerte plasser. Disse udefinerte plassene kunne man definere etter eget ønske. ISO 8859 er et 8 bits kodningssystem, forgjengeren ISO 656-60 var kun 7 bits. I den utvidede versjonen av ISO 8859, ISO 8859-1 (Latin-1), representeres Å ved de to hexadesimale verdiene C5 (Å) og E5 (å). ISO 8859 kalles også Extended ASCII. Derfor ble det til at man utviklet en del såkalte Extended ASCII versjoner, med plass til flere tegn. Vi har bl.a ISO8859-1 Latin alphabet no.1 som var beregnet på Vest-Europa. Her er tegnene Æ, Ø og Å samt æ, ø og å inkludert. For å dekke andre regioner ble det utviklet en rekke forskjellige Extended ASCII. En av de siste versjonene som er kommet er ISO8859-15 Latin alphabet no.9. Koden for Å i ASCII 8859-1 er 0x5C og for å er det 0x5D. Men flere versjoner av ISO 8859-1 kom, for både Microsoft, Macintosh og UNIX brukte den ledige plassen til å putte inn sine egne tegn. Windows 1252 er en av disse.

Represenatsjon i Windows CP 1252 Windows CP 1252 erstattet Microsoft sitt CP437/CP850. (CP437 er orginalen, CP850 er nordisk utvidelse). Forskjellen mellom ISO8859-1 og CP1252 er at CP1252 inneholder tegn som Microsoft syntes var nødvendige på plass 0x80 til 0x9F. Derfor vil Å fortsatt være på plass 0xC5 (å på 0xE5).

Representasjon i Unicode (/ ISO10646) Unicode og ISO10646 kom rundt starten på 1990 tallet og er praktisk talt det samme (to forskjellige organisasjoner som driver det, men samme tegnsettet). Unicode er et 32 bits systemvar og den endelige løsningen. Med plass til over 2 milliarder tegn får dette systemet plass til alle verdens tegn. I Unicode er de første 256 tegnene de samme som ISO8859-1 (Dette for bakoverkompabilitet) og kalles UTF-8. Unicode UTF-32 UTF-32 = UCS-4: Sender alle tegn som 32-bits tegn (lite brukt). Eksempel: A = 0000 0041. Å og å vil være representert som 0xC5 og 0xE5 på samme måte som i ASCII tabellen. Unicode UTF-16 UTF-16 = UCS-2: Sender alle tegn som 16-bits tegn. Eksempel: A = 0041. Siden Å er en diakritisk markering, vil man kunne skrive Å på forskjellige måter i UTF-16. Man kan skrive Å på UTF-8 måten, eller man kan ta en A (0x0041) og plusse på en ° (0x030A). Unicode UTF-8 UTF-8 = UCS-1: Sender tegn som 8, 16 eller 32-bits tegn. UTF-8 er identisk med ASCII for tegn definert i ASCII. Eksempel: A = 41. UTF-32 vil fungere på samme måte som UTF-16/UTF-8 iogmed at Å ikke vil bli representert noe annerledes i UTF-32.

Diakritisk markering Et diakritisk markering (aksent) er et ikke selvstendig tegn som blir føyd til en bokstav. Et tegn med diakritiske markeringer representeres som et basistegn etterfulgt av ett eller flere kombinasjonstegn som gir de diakritiske markeringene. For å representer spesialtegn som f.eks å i Unicode så skal man i utgangspunktet skrive de som basistegnet, i dette tilfellet a, etterfulgt av et eller flere kombinasjonstegn som kalles diakritiske markeringer. Setter vi disse tegnene, a som har koden 0x61 og ° som har koden 0xb0, sammen, får vi å. Hovedregelen er som sagt at vi skal skrive spesialtegn som å ved hjelp av diakritiske markeringer, men for å ha kompatibilitet mot ASCII og ISO 8859-1 finnes det også sammensatte tegn for å representere disse. De sammensatte tegnene oppfattes som ett tegn. Hvis man skal sammenligne tekster burde de være normalisert til å bruke en form for å representere spesialtegn. Det vanligste er at man kun bruker diakritiske markeringer og erstatter alle sammensatte tegn med dette.

Enheten Ångström Å kan representeres på to måter; enten som ett tegn, Å , eller som to tegn, º og A. I Unicode er begge tillatt. Å står også oppført flere steder i Unicode, den ene som den nordiske Å, mens den andre som enheten Ångstrom. Denne enheten er oppkalt etter den svenske fysikeren Anders Jonas Ångström (1814-74). Enheten står for 0.1 nanometer. Enheten er ikke godkjent i SI-systemet, men er mye brukt i bl.a atomfysikk. 1 Å = 0.1nm = 10^-10m.

Problemet og løsningen I dag er det flere problemer med bokstaven Å. Dette fordi det har eksistert så mange forskjellige standarder. Problemer ligger i addressen til hvert enkelt tegn; en asiatisk standard kan bruke samme addresse som vi bruker til vår Å. Når vi skal se på en Asiatisk programert html side så vil den bli kryptisk for oss, tegn blir ikke vist fram slik vi ønsker Et annet eksempel på hvordan et problem kan oppstå er hvis en person har skrevet en tekst i ISO 646-60, så skriver han det ut på en skriver som tror den får servert en ASCII-tekst. Da vil Å'er i teksten bli byttet ut med ] når det blir skrevet ut. Et liknende problem vil oppstå hvis to maskiner bruker forskjellige extended ASCII tegnsett. Løsningen på disse problemene er Unicode. Unicode er den eneste internasjonale standarden hvor Å er definert i. Tegnet vil forstås både av en kinesisk skriver, en amerikansk datamaskin, så lenge de forstår Unicode. Unicode er et fremtidsrettet tegnsett med stor kapasitet (2^31 tegn) som tar sikte på å innlemme alle typer tegn fra alle språk. Det vil ikke lenger bli nødvendig å bytte tegnsett hvis du skal se på tekster fra andre land. Kilder: Forelesningsnotater fra inf1040 forelesninger ved 1.amanuensis Gerhard Skagestein www.unicode.org www.iso.org www.ifi.no/~inf1040/foiler2003/tekst.pdf ASCII, ISO og Windows CP1252 kodetabell

Yalda Rahimi e-mail on UIO, 17 september, 2003