Home Inhoud Font links ASCII

Standaarden voor lettertekens / Standards for character encoding

Nog regelmatig kom ik bij programma's de kreten Atari tekenset en MS-DOS tekenset tegen zonder dat goed duidelijk is wat bedoeld wordt anders dan dat ze verschillend zijn. Misschien is het toch handig om nog eens te beschrijven wat er eigenlijk mee wordt aangegeven.

Onder een tekenset [characterset, Zeichensatz] verstaan we letterlijk een verzameling van tekens - plaatjes van letters, cijfers, leestekens e.d. - met een naam [de hoofdletter A, het leesteken puntkomma, etc.] en eventueel een identificatienummer binnen de set. Op zich zou de naam voldoende identificatiemogelijkheden bieden. De verzameling zelf heeft ook weer een naam, een eventueel nummer, etc.

Als simpele computergebruikers leggen we onze pennevruchten vast in digitale codes ter grootte van 8 bits ofwel 1 byte. Nog niet zo lang geleden moesten alle computergebruikers het doen met slechts 7 bits. Met 7 bits vielen 128 verschillende zaken te adresseren, met 8 bits 256 verschillende. Er waren zelfs computers waarbij slechts de hoofdletters konden worden gebruikt en geen enkele kleine letter.

Quite often I meet the term Atari characterset and MS-DOS characterset and then it's not quite clear what's meant by that - apart from the fact that they might be different. I think it may be handy to to describe - in simple terms - what we mean to say.

A characterset [tekenset, Zeichensatz] literally is a set of characters - pictures of letters, figures, interpunctuations, etc - that have a name [i.e. uppercast A, semi-colon, hyphen, etc] plus a referencenumber within the set. The name by itself should be sufficient but referencenumbers get preferred. The set itself can have in its turn a name plus referencenumber, etc.

Our literary products we store 'on the computer' using digital codes measuring 8 bits or 1 byte. Not so long ago all computer users had to be satisfied with only 7 bits. And these 7 bits were just enough to adddress 128 different things/characters, with 8 bits 256 characters could be referenced.


Traditioneel werden in de 7-bits tijd 128 verschillende tekens maar ook besturingselementen van schrijfmachines en dergelijke gekoppeld aan de codes. Het belletje van de schrijfmachine kreeg nummer 8, de carriage return nummer 12, de line feed nummer 13, het cijfer 0 nummer 48, de hoofdletter A nummer 65 etc. Met die 128 tekens kon de Anglosaksische wereld uitstekend uit de voeten. Dat in andere landen gebruik werd gemaakt van letters met accenten, lettercombinaties zoals de Nederlandse ij of de Franse oe was gewoon jammer. Zelfs in 1999 met het WorldWideWeb en E-mail moet de internationale electronische snelweg het nog steeds doen met het 7-bits zandweggetje of hooguit hier en daar geplaveid met een 8-bits asfaltlaag.

In the 7-bits period the 128 different codes were not only including readable characters but also practical elements that had to do with tyepwriters. The bell of the typewriter got number 8 assigned, the carriage return number 12, the line feed number 13, the figure 0 number 48, the uppercast A number 65 etc. Those 128 codes were more than enough for the Anglosaxon world. The fact that in other countries characters with diacritics or combinations [ligatures] like the Dutch ij or the French oe were needed was just bad luck for them. And even in 1999 the electronic high ways of the World Wide Web and e-mail still are condemned to suffer the restrictions of the 7-bits foot path. With only occasionally a 8-bits tarmac permitted.



Terug naar onze tekenset die te herleiden is vaak tot de ruime mogelijkheid van de traditionele drukker met zijn letterkast van losse tekens. En naar de verscheidenheid die landsgebonden is.

Met de komst van een 8-bits codering konden 128 extra tekens geadresseerd gaan worden. Was iedereen het eens over de eerste 128 tekens, over de volgende 128 kon uiteraard nooit overeenstemming onstaan. Immers als alle tekens met accenten van de Scandinavische en Slavische talen alleen al zouden zijn toegevoegd dan waren we ruimschoots boven de 128 gekomen. Er moesten locale afspraken gemaakt worden, locaal in een geografische zin maar ook wat soort computer-platform of zelfs wat soort computer-programma betreft.

Voor de big boss van Atari Jacek Trzmiel was zijn Joods-Poolse afkomst zo belangrijk dat hij standaard de Hebreeuwse tekens opgenomen wilde zien bij de tweede 128 tekens.

Voor de IBM-computers golden weer andere keuzes dan voor de Apple Macintosh en voor de makers van het DTP programma Ventura weer andere dan voor Pagemaker, etc.

Back to our characterset that can be compared to what the traditional printer house had in their letterboxes full of loose types. And back to the diversity that every nation has.

Met de komst van een 8-bits codering konden 128 extra tekens geadresseerd gaan worden. Was iedereen het eens over de eerste 128 tekens, over de volgende 128 kon uiteraard nooit overeenstemming onstaan. Immers als alle tekens met accenten van de Scandinavische en Slavische talen alleen al zouden zijn toegevoegd dan waren we ruimschoots boven de 128 gekomen. Er moesten locale afspraken gemaakt worden, locaal in een geografische zin maar ook wat soort computer-platform of zelfs wat soort computer-programma betreft.

To Atari's big boss Jacek Trzmiel probably his Jewish-Polish background was so important that the hebrew characters should be enclosed in the second set of 128 characters.

Using IBM-computers you had to make other choices than for the Apple Macintosh and so the producers of the DTP programme Ventura made other than these of Pagemaker, etc.


Wat we nu vooral goed moeten realiseren is dat er een [bijna] oneindig grote letterbak is waarvan alle tekens eenduidig zijn beschreven. In die bak zitten behalve de Nederlandse ij ook de de Ivriet-tekens, de Japanse, Chinese, en Koreaanse tekens en binnenkort ook de tekens van de Cherokee-Indianen.

Die kolossale letterbak wordt - na veel onderling gekissebis - beheerd door de ISO [International Standards Organisation] en de industriële UNICODE-club.

Aan alle tekens wordt een naam en een volgnummer opgehangen. Het idee is dat alles past binnen de 65532 ofwel 2 tot de 16-de macht ofwel met een 16-bits code is te adresseren. De grootste groepen van tekens wordt danwel gevormd door de Japanse, Chinese en Koreaanse tekens, maar als allerlei pictogrammen en symbolen verzamelingen ook nog eens moeten worden toegevoegd dan komen ze misschien toch nog plaats tekort?

We should realise that we have a shear immeasurable container of characters of which all characters have been described. In that container we can find not just the Western European characters but also the Ivrit, Japanese, Chinese and Korean characters and recntly the Cherokee-Indian ones.

This 'container' - despite all minor disputes - is managed by both the ISO [International Standards Organisation] and the industrial UNICODE-club.

All characters have been assigned a name and a number . It should all fit into the 0-65532 range i.e. the 16th power of 2 and to be addressed with just 16 bits [or 2 bytes]. The largest grup would be the Japanese, Chinese and Korean set of characters. However, with all the pictograms and symbols the human mind is capable of thinking up, another 16 bits probably will be necessary?!


Hou ook goed in de gaten dat tot nu toe in dit verhaal helemaal niet aan de orde is geweest of een hoofdletter A nu voorzien is van schreven of niet, of die schuin wordt afgebeeld, of die groen of paars is, of die dik is of mager. Al dat soort smaken of verschillen zijn van een andere orde. Als we praten over een Times New Roman, een Helvetica of een Universe 55 hebben we niets van doen met de problematiek van 7- of 8-bits codes en hoe vast te leggen is dat we nu eens een code 165 willen zien als een Griekse Zeta en dan weer eens als een Franse oe.

Zolang niet massaal wordt overgegaan op het vastleggen van lettertekens m.b.v. 16-bits moeten we ons behelpen met de [maximaal] 128 beschikbare die ons nog resten als we de US-ASCII [0-127] niet meetellen. Het afbeelden of mapping van de reuzen-letterbak op de 128 te gebruiken codes is het werk van eveneens de ISO die moeizaam tracht een aantal afspraken of standaarden vast te leggen. Er zijn naast een aantal overwegend door printer-fabrikanten opgestelde ook een 15-tal indelingen - overwegend op grond van geografisch gegroepeerde talen - in de ISO-8859 reeks standaarden.

We should also bear in mind that sofar we haven't discussed the fact whether characters have been with a capitalA or supplied with or without serifs, no mention sofar about the colour of the character nor other esthetical aspects. That chapter is a completely different one. Talking about a Times New Roman, a Helvetica or an Universe 55 has got nothing to do with the problems of coding with 7- or 8-bits. Nor whether a '165' can represent a Greek 'zeta' or a French 'oe-ligature'.

Since we shall have to wait till the majority is willing to use a 16-bits coding of characters in everyday use of texts, the mapping of some characters out of that enormous 'container' onto the [maximum] 128 available positions in the non-US-ASCII range [128-255] has belonged to the tasks of the ISO sofar. Apart from traditionally proposed by the industry [manufacturers of printers, operating systems etc.] mappings, the ISO prepared 15 mainly geographically determined standards, the so-called ISO-8859 standards.


Omdat vóór de komst van Windows 3.0 het afbeelden van lettertekens op papier resp op beeldscherm afhankelijk was van de hardware mogelijkheden waren het de computer- en printer-fabrikanten die de 'standaard' bepaalden.

Programma's die tekst grafisch afbeelden op scherm of op de printer waren lang een zeldzaamheid. Ook voor de Atari zou het nog tot That's Write en Signum! duren. Het programma 1StWord[Plus] was geheel traditioneel afhankelijk van de instelbaarheid van de printers.

De 'standaarden' van de printer-fabrikanten worden meestal met de term codepages aangegeven en een notatie als: PC-8, IBM Codepage 437, 737, 850, 852, 855, 857, 866, 869 voor diverse landen[groepen]; ECMA-94 Latijns-Amerikaans 1; Windows 1250, 1251, 1252, 1253; Koi 8-R Cyrillisch/Russisch; Math-8, Pi Font, PS Math, PS Text, Ventura International, Ventura Math, Ventura US, Roman-8, en nog veel meer.

Because of the fact that before the arrival of Windows 3.0 the display of characters both on paper or on screen was dependent on the hardware possibilities the producers of computer and printers decided what was to be the 'standard'.

Programmes that displayed text on screen [or on the printer] graphically were a rarity for quite some time. For the Atari too, before the appearance That's Write and Signum! the only possibility was to use the built-in screen or printer options. A good example was the 1StWord[Plus] programme.

The printer's producers 'standards' are usually described as codepages such as: PC-8, IBM Codepage 437, 737, 850, 852, 855, 857, 866, 869 for various [groups of] countries; ECMA-94 Latin-American 1; Windows 1250, 1251, 1252, 1253; Koi 8-R Cyrillic/Russian; Math-8, Pi Font, PS Math, PS Text, Ventura International, Ventura Math, Ventura US, Roman-8, and so on.


Hoe raak je wegwijs in deze wildernis van standaarden? En dan de code-pages: 437 Engels, 850 Latin 1, 852 Latin 2, 860 Portugees, 863 Frans-Canadees, 865 Scandinavies, 895 Tsjecho-Slowaaks, 897 Hongaars etc.

Een aantal standaarden hebben veel plaats ingeruimd voor de speciale tekens om kadertjes te maken. Dat gaat goed zo lang de breedte van de tekens altijd gelijk was [de zogenoemde niet-proportionele of monospace fonts van de ouderwetse schrijfmachines]. En bij de niet-grafisch werkende tekst-verwerkers was dat meestal het geval.

Maar met de grafische werkende programma's kon die gelijke breedte worden losgelaten en toen lukte het van geen kanten meer om tekst in een leuk kader te schrijven. We zien dan ook dat dat soort tekens in de ISO standaarden niet meer voorkomt, hoewel ze nog wel zitten in de reuzen-letterbak.

Op de Atari maken we slechts beperkt gebruik van de door Jacek Trzmiel bedachte mapping met de Hebreeuwse tekens. De fonts die het computer bedrijfssysteem kan gebruiken zijn altijd non-proportioneel en vaak beperkt tot 7-bits [ofwel 127 tekens]. Zuinigheid is een deugd en de oude fonts zoals gebruikt in Degas Elite en andere teken-programma's waren nog geheel gebaseerd op de 7-bits afspraken, en ook andere fonts met de .FNT extensie dachten genoeg te hebben aan 128 tekens. Maar ook Signum! fonts gingen uit van het aantal tekens dat rechtstreeks via het toetsenbord bereikbaar was en konden dus ook binnen de 128 blijven.


Bij de echte 8-bits georienteerde fonts zoals de GEM, That's Write GEM, Calamus en Signum!3 ligt het totaal aantal beschikbare tekens geheel vast op maximaal 256. Er is een één-op-één afbeelding tussen de plaatjes die in het font beschreven zijn en de reeks codes van 0 t/m 255.

Bij de fonts zoals gebruikt op MS-DOS machines en Apple Macintoshes - de PostScript Type 1 en de TrueType om de voornaamste te noemen - was het maximaal aantal beschibkare tekens ook in de praktijk beperkt tot 256, alleen waren de tekens intern ook voorzien van of een beschrijving of [later] van een volgnummer zoals hierboven aangegeven voor de reuzen-letterbak.

Er bestaan nu ook fonts - TrueType - waarin ruim 650 tekens zijn verpakt. Al veel eerder kenden we de Bitstream Speedo fonts met maximaal 564 tekens.


Met speciale mapping tabellen dienen we resp. de programmeurs duidelijk te maken welke tekens we waar willen hebben in de reeks van 256

Voor alle standaarden moeten er tabellen komen waarmee de programma's duidelijk gemaakt wordt welke plaatjes ze moeten afbeelden op scherm of op papier bij welke code van 0-255.

Het programma Papyrus werkt vanaf versie 5 met mapping-tabellen. Het programma That's Write versie 3 blijkt ook al vanaf 1993 diverse tabellen te hebben gehanteerd voor de invoer en uitvoer van ASCII teksten [bedoeld wordt teksten zonder opmaak-instructies, alleen bestaand uit codes varierend van 0-255]. Deze tabellen zijn er niet zo zeer om de juiste plaatjes te krijgen in het programma maar om een uitwisseling mogelijk te maken tussen computer-platforms resp. vaste-font-indelingen waar b.v. door de een met code 161 de Aogonek wordt afgebeeld en door de ander met code 163. De codes in de bron- en de doel-teksten worden anders.

Iets dergelijks doen een aantal programma's ongevraagd. Berucht is de vervanging van de Duitse sz van code 158 naar 225. Of ze vervangen de codes die tekens met accenten aanduiden door andere die volgens de ISO-8859-1 [ISO Latin 1] diezelfde codes zouden moeten representeren.

Een vrij nieuw terrein waarbij dit soort problemen zich ook blijkt voor te doen heeft betrekking op het Internet. Waar gebruik wordt gemaakt van 8-bits code [in plaats van de 7-bits US-ASCII voor E-mail b.v.] wordt meestal er van uitgegaan dat er gecodeerd wordt volgens ISO-8859-1. Op zich een goede ontwikkeling om zich te houden aan een ISO-standaard, alleen zo als we boven gezien hebben zijn er al 10 en worden de nummers 11 en 13 binnenkort geaccepteerd.




Copyright © Rein Bakhuizen van den Brink
Last updated on 26 december 2000

Home Inhoud Font links ASCII