Planethäftet, © F. Kilander, DSV, 1992--1996. Rev. 19981117
[Top]

Teckenuppsättningar


En förklaring till olika teckenuppsättningar

Eftersom datorn är bäst på att behandla heltal i minne och filer är det mest ekonomiskt att lagra en text som en följd av små heltal, där varje tal motsvarar en viss bokstav eller symbol. Att lagra en text genom att behålla varje teckens utseende (som på ett tryckt papper) är i datorn svårt och opraktiskt.

Relationen mellan ett visst heltal och formen på ett visat tecken upprätthålls i programvara och i de don som används för kommunikation med datorn. Knapparna på tangentbordet genererar koder som motsvarar symbolerna på knapparna och skrivaren svärtar pappret på korrekt sätt när den tar emot en viss kod.

För att möjliggöra kommunikation mellan datorer och program ansluter sig alla datortillverkare till en eller flera teckenstandarder. Varje teckenstandard definierar överensstämmelsen mellan de första heltalen (vanligen 0-255) och de tryckta tecknen. Både datorer och standarder har utvecklats under årens lopp och teckenuppsättningarna innehåller därför ofta delmängder av varandra.

I verkliga livet används dock betydligt fler än 256 olika skrivtecken av jordens alla folk. Tänk t ex på kyrilliska alfabet och japanska eller kinesiska skriftspråk. Detta har lett till utvecklingen av en 16-bitars teckenstandard kallad Unicode. 16 bitar ger möjlighet att definera 2^16 = 65536 olika tecken. Problemet med Unicode är dock bakåtkompatibilitet: nästan all programvara har skrivits för teckenuppsättningar med 8 bitar långa tecken. För att inte alla texter plötsligt skall fördubblas i storlek så krävs också ett smidigt sätt växla mellan 8 och 16 bitars teckenlängd vilket ställer nya krav på ordbehandlare och texteditorer.

I och med att olika datorleverantörer har valt att representera samma tecken med olika heltal, och olika tecken med samma heltal innebär en konvertering av en text mellan olika standarder i det enklaste fallet att vissa heltal i den kodade texten byts mot andra heltal. Det händer dock att en text har använt tecken som bara finns i en standard och det problemet har ingen enkel lösning.

När relationen mellan ett visst heltal och ett viss tecken är etablerad inträder nästa komplexitetsnivå, typsnitt och fonter. Dessa definierar ett teckens grafiska utformning när det framträder på bildskärm eller trycks av en skrivare. Typsnittet föreskriver ett visst utseende på tecknen (t ex Helvetica) medan en font innehåller en viss stilsort och storlek, t ex kursiverad stil med 10 punkters höjd.

Konvertering mellan olika format

På unix-systemen finns ett antal filter som hjälper till med konvertering av filer mellan vanliga format. Manualsidan heter translate och de filter som för närvarande finns konverterar från svenska sjubitarskoder, Apple Macintosh och IBM PC till den teckenstandard som används på arbetsstationerna.

Filtren heter

  • d47-to-isolatin1
  • e47-to-isolatin1
  • mac-to-isolatin1
  • cp437-to-isolatin1
  • och cp850-to-isolatin1.
Filtren tillåter även översättning i motsatt riktning.

Svenska tecken i olika system

Svenska tecken i olika system
7-bitarskodCP 437 ISO 8859-1, CP850MacOS
ASCIISIS 636127DOS Unix, MS Win, Win NT
oktaltdecimaltoktaltdecimalt oktaltdecimaltoktaltdecimalt
[Ä13391216142304196200128
\Ö13492231153326214205133
]Å13593217143305197201129
{ä173123204132344228212138
|ö174124224148366246232154
}å175125206134345229214140

ASCII (American Standard Code for Information Interchange) är som framgår av namnet en amerikansk standard för teckenkoder i området 0-127. Detta härrör från en tid när den åttonde biten användes till paritetskontroll. Elva positioner i ASCII definierades som utbytbara mot nationella tecken. Av den anledningen kunde man förr höra sådana beteckningar som "svensk", "tysk" eller till och med "amerikansk" ASCII.

SIS 63 61 27 är en standard för svensk 7-bitars kod. Det finns flera sådana svenska standarder som skiljer sig åt beroende på deras syfte. Till exempel dollartecknet i ASCII används ofta av programmerare medan användare av administrativa program föredrar ett valutatecken i den positionen. Svensk sjubitarskod är lyckligtvis på tillbakgång men kan fortfarande förekomma i äldre system eller i applikationer som behöver vara bakåtkompatibla.

ISO 8859-1 kallas även ISO Latin-1. Det är en 8-bitars kod som finns i ca 10 olika varianter. De flesta Unix-system använder ISO Latin-1 som passar bra för USA och Europa. De första 128 tecknen i ISO 8859 är identiska med ASCII. Mer information om ISO 8859-1 finns här.

Code Page 437 var den teckenuppsättning som DOS (PC) begåvades med. När Microsoft Windows lanserades så användes till en början Code Page 850 som innehåller fler tecken ur ISO 8859-1 men fortfarande har kvar många av de grafiska tecknen från DOS. Windows 95/98 och Windows NT använder Code Page 1252 för de flesta västerländska språk, men den är fortfarande inte identisk med ISO 8859-1. Även Unicode och MBCS (Multi-Byte Character Strings) förekommer i Windows. För bakåtkompatibilitet med DOS-miljön används Code Page 437 i Windows kommandofönster (CMD.EXE).

MacOS avser datorer från Apple Computer, dvs Macintosh.

PostScript föreskriver inga särskilda koder för de svenska tecknen, men PostScript Language Cookbook ger ett exempel som ibland används.

De flesta moderna operativsystem innehåller numera också inställningar för språk och formatkonventioner för tid, datum och valuta. En viss teckenuppsättning, ett visst språk och en viss formatkonvention utgör tillsammans en lokal (locale). Internationaliserad programvara kan med hjälp av språkinställningen välja rätt ledtexter och formatera data på ett igenkännbart sätt.

Hur man utnyttjar Kombinera tecken-tangenten

Vilka tecken som genereras av (vissa av) tangenterna är beroende av hur man har ställt in sitt tangentbord.

CDE (Common Desktop Environment)
Det finns en tangenttoppseditor som heter dxkeycaps. Starta från ett terminalfönster.
Windows 95 och Windows NT
Använd tangenten Alt Gr för att nå alternativa tecken. Vissa tecken (som t ex prickar, accenter eller tilde) är självkombinerande, dvs de förväntar sig ytterligare ett tecken för att bli inskrivna. För att skriva t ex 'Ñ', tryck '~' 'N'. För att skriva bara '~', tryck '~' ' ' dvs tilde följt av ett blanksteg.

Oavsett vilket läge man har valt kan man alltid använda tangenten Kombinera tecken för att producera nationella tecken eller ASCII-tecken. Tryck först på Kombinera tecken, släpp den och tryck därefter på två sekvenstecken, en i taget.

I tabellen står endast versaler (A, E osv). För gemener, använd a, c, e i, n, o, och u.

Tecken som nås via kombinationstangent
TeckenSekvensTeckenSekvens
#+ + ÀA `
@a a ÁA '
[( ( ÂA ^
\/ / eller / < ÃA ~
]) ) ÄA "
{( - ÅA ° eller A *
|^ / ÆA E
}) - ÇC ,
¡! ! ÈE `
¢c / eller c | ÉE '
£L - eller L = ÊE ^
¥Y - eller Y = ËE "
§S O eller S ! eller S 0 ÌI `
¤X O eller X 0 ÎI ^
©C O eller C 0 ÏI "
ªA _ ÑN ~
«< < ÒO `
±+ - ÓO '
²2 ^ ÔO ^
³3 ^ ÕO ~
µ/ U ÖO "
P ! ØO /
·^ . ÙU `
¹1 ^ ÚU '
ºO _ ÛU ^
»> > ÜU "
¼1 4 ßs s
½1 2 ÿy "
¿? ? ¬- ,
­- - ®R O
¯^ - ¾3 4
÷- : ×X X
´' ' ¸, ,
ÝY ' ýy '
ÞT H þt h
Ð- D ð- d
¨" "