Kommunikation af budskaber som digital tekst er langt mere kompliceret end mange tror. En tekstfil er mere end en samling bogstaver, der altid gengives i samme form på skærmen. Den digitale tekst er forbundet med et tegnsæt, som bestemmer, hvordan computer-koderne skal tolkes og omformes til bogstaver. Med Internettets hastige vækst og den stigende udveksling af elektroniske dokumenter på tværs af geografiske grænser er der opstået et stort behov for nye, universelle tegnsæt, som indeholder samtlige tegn, der i dag kan tænkes at optræde i en tekst.
Den internationale standardiseringsorganisation ISO vedtog i 1993 en sådan standard, kaldet ISO/IEC 10646-1. Et andet, universielt tegnsæt er Unicode; i starten af halvfemserne nåede Unicode-konsortiet og ISO til enighed om at sammensmelte teknologierne til en fælles standard, der i dag kendes som Universal Character Set (UCS).
ISO-8859
I computerens hukommelse er hvert tegn repræsenteret af en kode, der ofte fylder otte bit (en byte). Tegnet behøver ikke være et bogstav; det kan også være et punktum, linieskift eller et kombinationstegn, der skal sammenføjes med et andet tegn. Bogstavet "g" gemmes eksempelvis som koden "01100111". Det binære talsystem betyder, at otte bit kan have 256 forskellige værdier. Dermed kan et tegnsæt, der gemmer hvert symbol som en byte, ikke rumme mere end 256 tegn.
Det kan umiddelbart lyde af meget, når vores alfabet kun indeholder 28 bogstaver, men man skal huske, at hvert bogstav er repræsenteret to gange, skrevet med småt og stort. Punktum, komma, apostrof og mange andre tegn er også indeholdt i dette tegnsæt. En del af de 256 pladser er reserveret til særkoder fra tekstbehandlinger, som f.eks. kan markere, hvor der skal ske linieskift eller tabulator-indrykning.
Enhver tekst, der ligger gemt i digitalt format, er altså kodet med et tegnsæt. Det gængse vestlige tegnsæt er ISO/IEC 8859-1, bedre kendt som ISO Latin-1. Heri finder man alle tegn, som anvendes i det nordeuropæiske sprogrum, deriblandt også de skandinaviske. De første 128 kodepladser er identiske med et andet tegnsæt, US-ASCII, som kun benytter 7 bit og dermed kan rumme 128 forskellige tegn.
Alle programmer, der kan læse tekst med tegnsættet US-ASCII, kan derfor også behandle en tekst, der er kodet med ISO Latin-1; men alle bogstaver, der ikke findes i det amerikanske tegnsæt, bliver ignoreret. Andre tegnsæt er ISO-8859-2 (central/østeuropæisk), ISO-8859-4 (kyrillisk), ISO-8859-6 (arabisk) og ISO-8859-7 (græsk). I tabellen findes en oversigt over nogle af de mest almindelige tegnsæt. De første 128 pladser er identiske i alle tegnsæt, der starter med ISO-8859, mens resten fyldes af tegn fra det respektive alfabet, f.eks. kyrilliske eller græske bogstaver.
Et tegnsæt som det arabiske (ISO-8859-6) kan derfor ikke indeholde flere end 128 tegn, som er unikke for dette sprogområde. I mange tilfælde vil det være nok, men denne model rækker ikke, når man skal repræsentere de tusindvis af ideogrammer i det kinesiske tegnsæt. Den strenge sortering i tegnsæt betyder tilmed, at programmer i mange tilfælde ikke kan udveksle dokumenter indbyrdes, fordi de ikke behersker de nødvendige tegn eller, hvad der er endnu værre, misforstår det tegnsæt, som er anvendt.
Det sidstnævnte tilfælde kan eksempelvis medføre, at en tekstbehandling tolker de sidste 128 kodepladser i en arabisk tekst som græske bogstaver, og fremviser en fuldstændig uforståelig og meningsløs tekst på skærmen. De forskellige tegnsæt kan heller ikke blandes; det er ikke muligt at bruge japanske tegn i en hebræisk tekst.
1.114.112 tegn
Løsningen hedder Universal Character Set; et tegnsæt til alle verdens sprog. Med UCS kan man altid være sikker på, at dokumentet fremvises med de korrekte tegn, hvis blot programmet understøtter denne universelle standard. UCS kan repræsentere 1.114.111 forskellige tegn. I computerens hukommelse kodes hvert tegn med 31 bit, og tegnsættet kan derfor i princippet udvides til at omfatte mere end to milliarder tegn. Men til dato indeholder UCS ikke mere end omkring 39.000 symboler.
Prisen for det store antal kodepladser er hukommelsesforbruget - UCS kræver fire gange mere plads end ISO Latin-1. I dag, hvor computere råder over enorme mængder arbejdshukommelse, er det næppe et problem, som man vil mærke i det daglige.
Der eksisterer hele fire forskellige kodningsformer for tekst i UCS-formatet. Kodningen har ingen indflydelse på, hvordan teksten repræsenteres i computerens hukommelse, men har stor betydning, når teksten skal lagres i en fil, der måske skal overføres til en anden computer per elektronisk post eller diskette. Kodningen "sammenpresser" teksten og gør den mere kompakt. Her adskiller UCS sig fra f.eks. ISO Latin-1, hvor kodning og tegnsæt er det samme.
UCS-2 er den mest enkle kodningsform. Den benytter 16 bit og kan derfor kun repræsentere de første 65.536 tegn. Da UCS som nævnt kun indeholder 39.000 symboler er det p.t. alle tegn, som findes i det universelle tegnsæt.
En anden kodningsform, der også koder med 16 bit eller to byte, er UTF-16 (UCS Transformation Format). Med et lille trick kan UTF-16 repræsentere alle 1.114.112 tegn, selvom der kun benyttes 16 bit. Et reserveret område på 2.048 pladser inddeles i et øvre og nedre plan, og en kombination af værdier fra de to planer bruges til at beregne en position ud over de første 65.536 pladser.
Det universelle tegnsæt kan også kodes med 8 bit. En sådan fil fylder kun halvt så meget plads som en tekst, der er kodet med 16 bit, selvom filerne indeholder lige mange tegn. UTF-8 er den mest benyttede kodningsform til UCS. Den er meget velegnet til tekst, som indeholder vesteuropæiske bogstaver, bl.a. fordi den bruger de samme kodepladser som ISO Latin-1. Programmer, som ikke kender UTF-8 formatet, vil derfor blot tolke teksten som almindelig ASCII-tekst.
Hvis teksten indeholder bogstaver, som ikke findes i det almindelige vesteuropæiske tegnsæt, hænger UTF-8 mellem 8 og 24 ekstra bit på. Tegn i UTF-8 repræsenteres derfor med op til fire byte, flere end i UTF-16, hvilket betyder at kodningsformen kun er velegnet til vesteuropæisk tekst. UTF-7 er næsten identisk med UTF-8, men benytter kun de første syv bit i hver byte. Enkelte ældre postprogrammer benytter den sidste bit som kontroltegn.
Programmer
En bred vifte af programmer understøtter det universelle tegnsæt. Det gælder bl.a. tekstbehandlinger som Microsoft Word, hvor det er muligt at vælge "Unicode" som filtype, når man gemmer tekst. Som et af de første styresystemer er Windows NT bygget op med UCS som kerne, hvor enhver form for tekst kodes med dette tegnsæt. I tekstprogrammet Notesblok, der følger med Windows NT, kan man vælge at gemme tekst som UTF-8. Det er ikke muligt med Notesblok i Windows 95 eller 98, der stadig er baseret på ISO Latin-1. Men man kan installere en udvidelse til styresystemet, som gør det muligt at arbejde med baltiske, græske, tyrkiske og østeuropæiske tegn.
I Kontrolpanelet skal man vælge "Tilføj/fjern programmer". På fanen "Windows Installation" findes punktet "Understøttelse for flere sprog". Her kan man vælge, hvilke tegnsæt der skal installeres. Efter fuldendt installation kan man benytte en sprogindikater i proceslinjen til at vælge det tegnsæt, som man vil benytte.
Det er også muligt at kombinere flere forskellige tegnsæt i samme dokument. Men dette fungerer kun med rigt formaterede dokumenter, der benytter True Type skrifttyper; sådanne dokumenter med blandede tegnsæt kan ikke eksporteres som almindelig tekst, medmindre de gemmes i UCS-format.
Med UCS er det blevet lettere end nogensinde at oversætte web-sider til flere sprog. Internet-browserne Internet Explorer og Netscape Navigator understøtter både UTF-7 og UTF-8. En samling danske web-sider kan f.eks. oversættes til kinesisk og gemmes som UTF-8 filer. Hos den kinesiske Internet-bruger fremstår teksten med de korrekte symboler, fordi browseren genkender kodningen som UCS.
Det kan anbefales at indsætte følgende kode i web-siden, som fortæller browseren, at der er tale om UTF-8: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">. Brugeren kan også vælge tegnsættet manuelt med "Tegnsæt" i menuen "Vis" i Internet Explorer, og "Character Set" i menuen "View" i Netscape Navigator.
Hos Unicode-konsortiet (http://www.unicode.org), der tæller medlemmer som IBM, Microsoft, Novell og Sun, finder man uddybende informationer om det universelle tegnsæt. Forlaget Addison Wesley har udgivet den officielle bog om UCS, "The Unicode Standard, Version 2.0", som kan bestilles fra konsortiets hjemmeside.
Kode | Beskrivelse |
US-ASCII | Amerikansk/engelsk |
ISO-8859-1 | Vesteuropæisk |
ISO-8859-2 | Central/østeuropæisk |
ISO-8859-3 | Sydeuropæisk |
ISO-8859-4 | Kyrillisk (baltisk) |
ISO-8859-5 | Kyrillisk (østeuropæisk) |
ISO-8859-6 | Arabisk |
ISO-8859-7 | Græsk |
ISO-8859-8 | Hebræisk |
ISO-8859-9 | Tyrkisk |
ISO-8859-10 | Grønlandsk |
ISO-2022-jp | Japansk |
ISO-2022-kr | Koreansk |
gb_2312-80 | Kinesisk |