{"id":2066,"date":"2021-04-27T08:56:01","date_gmt":"2021-04-27T06:56:01","guid":{"rendered":"https:\/\/www.lammertbies.nl\/comm\/info\/ascii-karakterset-tabel"},"modified":"2021-05-02T23:31:06","modified_gmt":"2021-05-02T21:31:06","slug":"ascii-characters","status":"publish","type":"page","link":"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters","title":{"rendered":"ASCII karakterset tabel"},"content":{"rendered":"\n<ul><li><a href=\"#intr\">ASCII, de geschiedenis<\/a><\/li><li><a href=\"#tabe\">ASCII tekenset tabel<\/a><\/li><li><a href=\"#cont\">ASCII controle codes in detail<\/a><\/li><\/ul>\n\n<h2 class=\"wp-block-heading\" id=\"intr\">ASCII, de geschiedenis<\/h2>\n\n<p>De meest gebruikte computer standaard is zonder twijfel ASCII, the American Standard Code for Information Interchange. Toen men begon met computers te ontwikkelen kwam automatisch de noodzaak op om bepaalde vormen van informatie in een digitaal formaat te defini\u00ebren. Voor getallen was dit relatief eenvoudig, maar tekst bleek veel moeilijker te zijn. Morse code was ontwikkeld in de 19<sup>e<\/sup> eeuw, maar dat kon niet eenvoudig worden aangepast aan het binaire systeem in computers omdat de codes die voor karakters werden gebruikt niet allemaal dezelfde lengte hadden en er bovendien geen duidelijke sorteer methode voor beschikbaar was. IBM kwam i<\/p>\n\n<p>IBM kwam in de zestiger jaren van de vorige eeuw met haar eigen oplossing EBCDIC, Extended Binary Coded Decimal Interchange Code voor toepassing op haar mainframes en de AS\/400 systemen. Maar dit systeem had een aantal problemen. De letters van het alfabet waren geplaatst in blokken, wat niet erg handig is voor sorteren. Op hetzelfde moment dat IBM met haar EBCDIC oplossing kwam, cre\u00eberden andere computer ontwikkelaars hun eigen oplossingen.<\/p>\n\n<p>Het werd duidelijk dat de uitwisselen van gegevens tussen verschillende computer systemen een groot probleem zou worden als deze diversiteit niet zou stoppen. Het was daarom dat Bob Bemer\u2014nu vaak de Father of ASCII genoemd\u2014alle bestaande verschillende codeersystemen compileerde in een grote lijst. Deze lijst zorgde ervoor dat computer fabrikanten zich gingen realiseren dat snel iets aan deze situatie moest worden gedaan. Bob Bemer startte standaardisatie commissies, en de eerste implementatie van ASCII werd in 1963 ge\u00efntroduceerd. Aanvullingen voor buitenlandse talen werden in ASCII in 1967 toegevoed en in 1968 werd het eindelijk een offici\u00eble overheidsstandaard.<\/p>\n\n<p>Tegenwoordig gebruiken bijna 100% van alle computers de ASCII codering als het primaire codeer systeem. Toevoegingen voor buitenlandse talen zijn allemaal gecodeerd als een uitbreiding op ASCII. Daarom kan zonder meer worden gesteld, dat ASCII de meest gebruikte computerstandaard in de wereld is.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"tabe\">ASCII tekenset tabel<\/h2>\n\n<p>De ASCII tekenset is de standaard geworden in het uitwisselen van informatie. De eerste 32 karakters en het laatste zijn controlecodes, de andere karakters kunnen normaal worden geprint. De controlecodes <a href=\"#dc1\">DC1 (XON)<\/a> en <a href=\"#dc3\">DC3 (XOFF)<\/a> worden gebruikt bij software flow control toepassingen. In de volgende tabellen is de ASCII karakterset te zien, samen met de betekenis van de controlecodes.<\/p>\n\n<figure class=\"wp-block-table aligncenter is-style-stripes\"><table><thead><tr><th>&#8211;<\/th><th>0<\/th><th>1<\/th><th>2<\/th><th>3<\/th><th>4<\/th><th>5<\/th><th>6<\/th><th>7<\/th><\/tr><\/thead><tbody><tr><td>0<\/td><td><a href=\"#nul\">NUL<\/a><\/td><td><a href=\"#soh\">SOH<\/a><\/td><td><a href=\"#stxetx\">STX<\/a><\/td><td><a href=\"#stxetx\">ETX<\/a><\/td><td><a href=\"#eot\">EOT<\/a><\/td><td><a href=\"#enq\">ENQ<\/a><\/td><td><a href=\"#ack\">ACK<\/a><\/td><td><a href=\"#bel\">BEL<\/a><\/td><\/tr><tr><td>8<\/td><td><a href=\"#bs\">BS<\/a><\/td><td><a href=\"#ht\">HT<\/a><\/td><td><a href=\"#lf\">LF<\/a><\/td><td><a href=\"#vt\">VT<\/a><\/td><td><a href=\"#ff\">FF<\/a><\/td><td><a href=\"#cr\">CR<\/a><\/td><td><a href=\"#sosi\">SO<\/a><\/td><td><a href=\"#sosi\">SI<\/a><\/td><\/tr><tr><td>16<\/td><td><a href=\"#dle\">DLE<\/a><\/td><td><a href=\"#dc1\">DC1<\/a><\/td><td><a href=\"#dc2\">DC2<\/a><\/td><td><a href=\"#dc3\">DC3<\/a><\/td><td><a href=\"#dc4\">DC4<\/a><\/td><td><a href=\"#nak\">NAK<\/a><\/td><td><a href=\"#syn\">SYN<\/a><\/td><td><a href=\"#etb\">ETB<\/a><\/td><\/tr><tr><td>24<\/td><td><a href=\"#can\">CAN<\/a><\/td><td><a href=\"#em\">EM<\/a><\/td><td><a href=\"#sub\">SUB<\/a><\/td><td><a href=\"#esc\">ESC<\/a><\/td><td><a href=\"#fs\">FS<\/a><\/td><td><a href=\"#gs\">GS<\/a><\/td><td><a href=\"#rs\">RS<\/a><\/td><td><a href=\"#us\">US<\/a><\/td><\/tr><tr><td>32<\/td><td><a href=\"#sp\">SP<\/a><\/td><td>!<\/td><td>&#8220;<\/td><td>#<\/td><td>$<\/td><td>%<\/td><td>&amp;<\/td><td>&#8216;<\/td><\/tr><tr><td>40<\/td><td>(<\/td><td>)<\/td><td>*<\/td><td>+<\/td><td>,<\/td><td>&#8211;<\/td><td>.<\/td><td>\/<\/td><\/tr><tr><td>48<\/td><td>0<\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><\/tr><tr><td>56<\/td><td>8<\/td><td>9<\/td><td>:<\/td><td>;<\/td><td><\/td><td>=<\/td><td>&gt;<\/td><td>?<\/td><\/tr><tr><td>64<\/td><td>@<\/td><td>A<\/td><td>B<\/td><td>C<\/td><td>D<\/td><td>E<\/td><td>F<\/td><td>G<\/td><\/tr><tr><td>72<\/td><td>H<\/td><td>I<\/td><td>J<\/td><td>K<\/td><td>L<\/td><td>M<\/td><td>N<\/td><td>O<\/td><\/tr><tr><td>80<\/td><td>P<\/td><td>Q<\/td><td>R<\/td><td>S<\/td><td>T<\/td><td>U<\/td><td>V<\/td><td>W<\/td><\/tr><tr><td>88<\/td><td>X<\/td><td>Y<\/td><td>Z<\/td><td>[<\/td><td>\\<\/td><td>]<\/td><td>^<\/td><td>_<\/td><\/tr><tr><td>96<\/td><td>`<\/td><td>a<\/td><td>b<\/td><td>c<\/td><td>d<\/td><td>e<\/td><td>f<\/td><td>g<\/td><\/tr><tr><td>104<\/td><td>h<\/td><td>i<\/td><td>j<\/td><td>k<\/td><td>l<\/td><td>m<\/td><td>n<\/td><td>o<\/td><\/tr><tr><td>112<\/td><td>p<\/td><td>q<\/td><td>r<\/td><td>s<\/td><td>t<\/td><td>u<\/td><td>v<\/td><td>w<\/td><\/tr><tr><td>120<\/td><td>x<\/td><td>y<\/td><td>z<\/td><td>{<\/td><td>|<\/td><td>}<\/td><td>~<\/td><td><a href=\"#del\">DEL<\/a><\/td><\/tr><\/tbody><\/table><figcaption>De ASCII tekenset<\/figcaption><\/figure>\n\n<h2 class=\"wp-block-heading\" id=\"cont\">ASCII controle codes in detail<\/h2>\n\n<dl class=\"wp-block-simple-definition-list-blocks-list\">\n<dt id=\"nul\" class=\"wp-block-simple-definition-list-blocks-term\">0 &#8211; NUL &#8211; Null character<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Het NUL karakter in de ASCII karakterset was oorspronkelijk bedoeld als een NOP, een karakter om genegeerd te worden. Dit zou handig zijn bij ponsbanden waar additionele informatie zou moeten worden toegevoegd tussen bestaande informatie. Op sommige printers werd echter de NUL in plaats daarvan als een spatie ge\u00efmplementeerd. Later werd het null karakter nog aanzienlijk belangrijker omdat het werd gedefini\u00eberd als het karakter om het einde van een string te markeren in de C programmeertaal. Dit maakte het mogelijk om strings met oneindige lengte te defini\u00ebren in programmeertalen. Tot dan toe defini\u00eberden de meeste programmeertalen zoals Pascal een string als een lengte indicator, gevolgd door een array dat de karakters bevat.<\/p>\n<\/dd>\n\n\n\n<dt id=\"soh\" class=\"wp-block-simple-definition-list-blocks-term\">1 \u2013 SOH \u2013 Start of heading<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Als de communicatie voornamelijk bestaat uit commando&#8217;s of berichten, dan kan de SOH worden gebruikt om het begin van elke boodschapkop aan te geven. In de originele 1963 definitie van de ASCII standaard werd de naam start of message gebruikt, die werd hernoemd tot start of heading in de uiteindelijke release. Tegenwoordig zien we SOH vaak in seri\u00eble RS232 communicatie wanneer er sprake is van een master-slave configuratie. Elk commando van de master start met een SOH. Dit maakt het mogelijk voor de aangesloten slaves om te hersynchroniseren op het volgende commando wanneer er communicatiefouten zijn opgetreden. Zonder een duidelijke markering van de start van elk commando kan een hersynchronisatie moeilijk te implementeren zijn.<\/p>\n<\/dd>\n\n\n\n<dt id=\"stxetx\" class=\"wp-block-simple-definition-list-blocks-term\">2 \u2013 STX \u2013 Start of text<br\/>3 \u2013 ETX \u2013 End of text<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Een berichten-gebasseerd communicatieprotocol zal waarschijnlijk boodschappen gebruiken met een kop waarin adres informatie is verwerkt, gevolg door de actuele inhoud. De ASCII STX geeft de start van het inhoudsblok aan van een dergelijk bericht. Deze controle code sluit automatisch een eventueel voorafgaande header af. Dat betekent dat er geen controle code is voor het afsluiten van een kop die is gestart door SOH. Het einde van het bericht wordt aangegeven met het controle karakter ETX. De actuele inhoud van een bericht wordt niet door de ASCII standaard gedefini\u00eberd en is protocol afhankelijk. Interessant om op te merken is, dat in het 1963 voorstel van de standaard de naamgeving afwijkend was. STX werd in dit voorstel EOA, end of address genoemd en ETX ging door het leven als EOM, end of message. Dit kwam omdat in het originele voorstel een bericht altijd werd omgeven door een start en stop controle karakter. De nieuwe definitie liet ook de mogelijkheid toe om alleen de SOH te gebruiken om een commando met een vaste lengte te versturen, zonder de noodzaak van een eindcode. In feite zien we in huidige seri\u00eble protocollen dit vaak gebruikt waarbij berichten van vaste lengte verzonden worden zonder scheiding tussen de kop en de inhoud.<\/p>\n<\/dd>\n\n\n\n<dt id=\"eot\" class=\"wp-block-simple-definition-list-blocks-term\">4 \u2013 EOT \u2013 End of transmission<\/dt>\n\n\n\n<dt id=\"enq\" class=\"wp-block-simple-definition-list-blocks-term\">5 \u2013 ENQ \u2013 Enquiry<\/dt>\n\n\n\n<dt id=\"ack\" class=\"wp-block-simple-definition-list-blocks-term\">6 \u2013 ACK \u2013 Acknowledgment<\/dt>\n\n\n\n<dt id=\"bel\" class=\"wp-block-simple-definition-list-blocks-term\">7 \u2013 BEL \u2013 Audible bell<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>De BEL code is een interessante in de ASCII karakterset, omdat het niet primair gebruikt wordt voor data codering of randapparatuur sturing. In plaats daarvan wordt het gebruikt om de menselijke aandacht te trekken met een hoorbaar geluid. Het was bedoeld om zowel op computers als op randapparatuur zoals printers te gebruiken. In de programmeertaal C wordt de controle code \\a gebruikt voor het belsignaal.<\/p>\n<\/dd>\n\n\n\n<dt id=\"bs\" class=\"wp-block-simple-definition-list-blocks-term\">8 \u2013 BS \u2013 Backspace<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>De functie van de backspace is in de loop der tijd veranderd. In de begintijd was het voornamelijk bedoeld om de cursor \u00e9\u00e9n positie terug te verplaatsen op printers en teletypes om accenten op letters mogelijk de maken. Om bijvoorbeeld het karakter \u00e2 te maken zou de code rij aBS^ naar de printer gestuurd kunnen worden. Deze methode was een praktische kopie van de methode hoe letters met accenten op mechanische typemachines werden gegenereerd. Maar toen beeldschermen werden ge\u00efntroduceerd werd deze methodiek niet langer ondersteund. Daarom wordt de backspace tegenwoordig meestal niet alleen gebruikt om de cursor te verplaatsen, maar ook om de actuele inhoud op die positie te verwijderen. Deze controle code is in de C programmeertaal aanwezig als \\b.<\/p>\n<\/dd>\n\n\n\n<dt id=\"ht\" class=\"wp-block-simple-definition-list-blocks-term\">9 \u2013 HT \u2013 Horizontal tab<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>De HT controle code in de ASCII karakterset is gedefini\u00eberd voor layout doeleinden. Het geeft een commando aan het uitvoerapparaat om door te gaan naar de volgende tabel kolom. De breedte van tabel kolommen is flexibel, maar bij veel randapparaten wordt een standaard waarde van 8 gebruikt. Het gebruik van de horizontal tab vermindert niet alleen het werk van datatypistes, maar introduceerde ook een methode om de hoeveelheid opslagruimte voor geformateerde teksten te beperken. We lachen hier nu om, maar houd in het achterhoofd dat de ASCII standaard 40 jaar geleden werd ontwikkeld toen elke byte opslagruimte waardevol was en compressiemethodes zoals ZIP nog niet bestonden. Het controle karakter HT is aanwezig als \\t in de C programmeertaal.<\/p>\n<\/dd>\n\n\n\n<dt id=\"lf\" class=\"wp-block-simple-definition-list-blocks-term\">10 \u2013 LF \u2013 Line feed<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Het line-feed karakter is \u00e9\u00e9n van de karakters in de ASCII karakter set dat misbruikt is. Origineel was het LF karakter bedoed om de kop van de printer \u00e9\u00e9n regel naar beneden te bewegen. Een tweede controle karakter <a href=\"#cr\">CR<\/a> zou dan moeten worden gebruikt om de printkop naar de linker kantlijn te verplaatsen. Dit is de manier waarop het geimplementeerd is in vele seriele protocollen en in besturingssystemen zoals MS-DOS en Windows. Aan de andere kan herdefinieerde de C programmeertaal en het Unix besturingssysteem dit karakter als newline dat een combinatie van de line feed en de carriage return inhield. Er valt over te discussieren welke implementatie foutief is. De manier waarop C en Unix het oplossen is zonder meer een natuurlijker methode vanuit een programmeer standpunt. Aan de andere kant ligt de MS-DOS implementatie dichter bij de originele definitie. Het was beter geweest als zowel line feed, als newline beiden onderdeel waren geweest van de originele ASCII definitie omdat de eerste een typische code is voor randapparaat aansturing, terwijl de laatste een logisch tekstscheidingsteken is. Maar helaas is deze scheiding niet aanwezig. Tegenwoordig gebruiken mensen het LF karakter meestal als newline functie en de meeste software die platte ASCII tekst bestanden verwerken zijn in staat om zowel losse LF, als gecombineerde CR\/LF karakters te verwerken. Dit controle karakters is in de programmeertaal C beschikbaar als \\n.<\/p>\n<\/dd>\n\n\n\n<dt id=\"vt\" class=\"wp-block-simple-definition-list-blocks-term\">11 \u2013 VT \u2013 Vertical tab<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>De vertical-tab is net zoals de horizontal tab gedefini\u00eberd om de hoeveelheid werk voor het cre\u00ebren van layouts te verminderen, en ook om de opslagruimte van geformateerde teksten te verminderen. De VT controle code wordt gebruikt om te springen naar de volgende gemarkeerde regel. Om eerlijk te zijn heb ik nog nooit een situatie of programma gezien waar deze functionaliteit was ge\u00efmplementeerd. In de meeste gevallen wordt in plaats hiervan een rij van <a href=\"#lf\">LF<\/a> codes gebruikt.<\/p>\n<\/dd>\n\n\n\n<dt id=\"ff\" class=\"wp-block-simple-definition-list-blocks-term\">12 \u2013 FF \u2013 Form feed<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>De form-feed code FF is ontworpen om printers aan te sturen. Wanneer een dergelijke code ontvangen wordt laadt de printer het volgende vel papier. Het gedrag van de controle code op terminals hangt af van de implementatie. Sommige terminals maken het scherm schoon, terwijl anderen alleen het karakter ^L laten zien, of in plaats daarvan een line feed uitvoeren. De shell omgevingen Bash en Tcsh hebben de ASCII form feed geimplementeerd als een clear screen commando. De form feed is aanwezig als \\f in de C programmeertaal.<\/p>\n<\/dd>\n\n\n\n<dt id=\"cr\" class=\"wp-block-simple-definition-list-blocks-term\">13 \u2013 CR \u2013 Carriage return<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>De carriage-return in de ASCII karakter verzameling is in zijn originele vorm bedoeld om de printkop terug te brengen naar de linker kantlijn, zonder naar de volgende regel te gaan. Later is deze code ook toegewezen aan de enter toets op toetsenborden om aan te geven dat de invoer van tekst is voltooid. Met scherm georienteerde representatie van gegevens wilden mensen dat entering data ook zou impliceren dat de cursor naar de volgende regel zou verplaatsen. Daarom heeft in de C programmeertaal en unix besturingssysteem een herdefinitie van de <a href=\"#lf\">LF<\/a> controle code plaatsgevonden naar newline. Tegenwoordig vertaalt software vaak ongemerkt een ge-enterde CR naar de LF ASCII code wanneer de data wordt opgeslagen.<\/p>\n<\/dd>\n\n\n\n<dt id=\"sosi\" class=\"wp-block-simple-definition-list-blocks-term\">14 \u2013 SO \u2013 Shift out<br\/>15 \u2013 SI \u2013 Shift in<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Zelfs zo vroeg als in de zestiger jaren begrepen de mensen die de ASCII karakterverzameling definieerden dat het waardevol was om de karakterset niet alleen geschikt te maken voor het Engelse alfabet, maar ook voor buitenlandse versies. De shift in en shift out werden gedefinieerd voor dit doel. Origineel waren de codes bedoeld om te schakelen tussen het cyrillische en latijnse alfabet. De cyrillische ASCII definitie die de shift karakters gebruikt is KOI-7. Later werden deze controle karakters ook gebruikt om het lettertype van printers te wijzigen. In dit gebruik levert SO karakters van dubbele breedte terwijl gecomprimeerde karakters worden geselecteerd met SI.<\/p>\n<\/dd>\n\n\n\n<dt id=\"dle\" class=\"wp-block-simple-definition-list-blocks-term\">16 \u2013 DLE \u2013 Data link escape<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Het is in bepaalde gevallen noodzakelijk om in een doorgaande data communicatie controle karakters te verzenden. Er zijn situaties waarbij deze controle karakters zouden kunnen worden ge\u00efnterpreteerd als onderdeel van de normale datastroom. De DLE is gedefini\u00eberd in de ASCII standaard voor deze situaties. Als dit karakter in de datastroom wordt gedetecteerd, dan weet de ontvangende partij dat \u00e9\u00e9n of meer van de erop volgende karakters moeten worden ge\u00efnterpreteerd op een andere manier dan de andere karakters in de stroom. De exacte interpretatie van de erop volgende katakters is geen onderdeel van de ASCII definitie. Slechts de mogelijkheid om uit te breken, of op zijn Engels data link escape is gecre\u00eberd. In het Hayes communicatieprotocol voor modems is de data link escape gedefini\u00eberd als stilte+++stilte Het is mijn mening dat het een beter idee was geweest wanneer het Hayes protocol in plaats daarvan de DLE had gebruikt, omdat hiet niet in communicatiestilte ingebed behoeft te worden, en het zou passen binnen een al bestaande standaard. De ontwikkelaars bij Hayes hebben echter anders besloten en nu wordt de +++ tekenrij veel vaker toegepast dan de originele DLE.<\/p>\n<\/dd>\n\n\n\n<dt id=\"dc1\" class=\"wp-block-simple-definition-list-blocks-term\">17 \u2013 DC1 \u2013 Device control 1 \/ XON \u2013 Transmission on<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Hoewel origineel gedefinieerd als DC1 is deze ASCII controle code nu beter bekend als de XON code die gebruikt wordt voor <a href=\"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/rs-232-flow-control#soft\">software flow control<\/a> in seri\u00eble communicatie. Het belangrijkste gebruik is het herstarten van de transmissie nadat de communicatie is gestopt door de <a href=\"#dc3\">XOFF<\/a> controle code. Wie vroeger gewerkt heeft met seri\u00eble terminals zal zich misschien herinneren dat het soms hielp\u2014wanneer data errors optraden\u2014om op de Ctrl-Q toets te drukken. Dit is omdat deze toetsencombinatie in feite de XON controle code genereert, die een geblokkeerde communicatie weer op gang brengt wanneer de host of terminal per ongeluk een foutief karakter had ge\u00efnterpreteerd als XOFF.<\/p>\n<\/dd>\n\n\n\n<dt id=\"dc2\" class=\"wp-block-simple-definition-list-blocks-term\">18 \u2013 DC2 \u2013 Device control 2<\/dt>\n\n\n\n<dt id=\"dc3\" class=\"wp-block-simple-definition-list-blocks-term\">19 \u2013 DC3 \u2013 Device control 3 \/ XOFF \u2013 Transmission off<\/dt>\n\n\n\n<dt id=\"dc4\" class=\"wp-block-simple-definition-list-blocks-term\">20 \u2013 DC4 \u2013 Device control 4<\/dt>\n\n\n\n<dt id=\"nak\" class=\"wp-block-simple-definition-list-blocks-term\">21 \u2013 NAK \u2013 Negative acknowledgment<\/dt>\n\n\n\n<dt id=\"syn\" class=\"wp-block-simple-definition-list-blocks-term\">22 \u2013 SYN \u2013 Synchronous idle<\/dt>\n\n\n\n<dt id=\"etb\" class=\"wp-block-simple-definition-list-blocks-term\">23 \u2013 ETB \u2013 End of transmission block<\/dt>\n\n\n\n<dt id=\"can\" class=\"wp-block-simple-definition-list-blocks-term\">24 \u2013 CAN \u2013 Cancel<\/dt>\n\n\n\n<dt id=\"em\" class=\"wp-block-simple-definition-list-blocks-term\">25 \u2013 EM \u2013 End of medium<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>De EM wordt gebruikt aan het einde van een serieel opslag medium zoals een ponsband of magnetische tape. Het geeft het logische einde van de gegevens aan. Dit is niet noodzakelijkerwijze ook het fysieke einde van de datadrager.<\/p>\n<\/dd>\n\n\n\n<dt id=\"sub\" class=\"wp-block-simple-definition-list-blocks-term\">26 \u2013 SUB \u2013 Substitute character<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\"><\/dd>\n\n\n\n<dt id=\"esc\" class=\"wp-block-simple-definition-list-blocks-term\">27 \u2013 ESC \u2013 Escape<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Het escape karakter is \u00e9\u00e9n van de uitvindingen in de ASCII standaard die werd voorgesteld door Bob Bemer. Het wordt gebruikt om het begin aan te geven van een uitgebreide rij controle karakters. Op deze manier was het niet noodzakelijk om alle noodzakelijke controle coders op te nemen in de ASCII standaard. Wanneer nieuwe technologie\u00ebn nieuwe controle commandos zouden behouven, dan zou de ESC gebruikt kunnen worden als het start karakter van deze multi-karakter commando&#8217;s. Escape codes worden veelvuldig gebruikt in printers en terminals voor apparaat specificieke instellingen zoals fonts, tekst positionering en kleuren. Als ESC niet in de ASCII standaard aanwezig was geweest, dan was de standaard waarschijnlijk vrij snel daarna opgevolgd door een nieuwe standaard. De escape mogelijkheid gaf ontwikkelaars letterlijk de mogelijkheid te ontvluchten van de standaard waar nodig, maar om diezelfde standaard waar mogelijk te gebruiken.<\/p>\n<\/dd>\n\n\n\n<dt id=\"fs\" class=\"wp-block-simple-definition-list-blocks-term\">28 \u2013 FS \u2013 File separator<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>De file separator FS is een interessante controle code, omdat het ons inzicht geeft in de manier waarop computertechnologie in de jaren zestig was georganiseerd. We zijn nu gewend aan random access media zoals RAM en magnetische disks, maar toen de ASCII standaard werd gedefinieerd was de meeste data serieel. Ik spreek hier niet alleen over seri\u00eble communicatie, maar ook over seri\u00eble opslag zoals ponskaarten, ponsbanden en magnetische tapes. In een dergelijke situatie is het overduidelijk effici\u00ebnt om een enkelvoudige controle code te gebruiken om de scheiding aan te geven tussen twee bestanden. De FS was voor dit doel gedefini\u00eberd.<\/p>\n<\/dd>\n\n\n\n<dt id=\"gs\" class=\"wp-block-simple-definition-list-blocks-term\">29 \u2013 GS \u2013 Group separator<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Gegevensopslag was \u00e9\u00e9n van de belangrijke redenen waarom een aantal controle codes in de ASCII definitie terecht zijn gekomen. Databases bestaan meestal uit tabellen waarin records voorkomen. Alle records van \u00e9\u00e9n tabel hebben het zelfde type, maar records van verschillende tabellen kunnen onderling in layout verschillen. De groep separator GS is gedefinieerd om tabellen te scheiden in een serieel data opslag systeem. Merk op dat het woord tabel op dat moment nog niet werd gebruikt en dat de ASCII ontwikkelaars het een groep noemden.<\/p>\n<\/dd>\n\n\n\n<dt id=\"rs\" class=\"wp-block-simple-definition-list-blocks-term\">30 \u2013 RS \u2013 Record separator<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Binnen een groep (of tabel) worden de records gescheiden met een RS of record separator.<\/p>\n<\/dd>\n\n\n\n<dt id=\"us\" class=\"wp-block-simple-definition-list-blocks-term\">31 \u2013 US \u2013 Unit separator<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>De kleinste datagegevens die in een database opgeslagen zijn worden units genoemd in de ASCII definitie. We zouden het tegenwoordig een veld noemen. De unit separator scheidt deze velden in een seri\u00eble dataopslag omgeving. De meeste huidige database implementaties hebben een vaste veld lengte nodig. Er wordt voldoende ruimte in het record gereserveerd voor het grootst mogelijke gegeven voor elk veld op te slaan, zelfs als dat in de meeste gevallen niet noodzakelijk is. Dit kost een grote hoeveelheid ruimte in de veel situaties. De US controle code staat doe dat alle variabelen een variabele lengte hebben. Als dataopslag ruimte gelimiteerd is\u2014zoals in de zestiger jaren\u2014dan is dit een goede manier om kostbare ruimte uit te sparen. Aan de andere kant is seri\u00eble opslag veel minder effici\u00ebnt dan de tabel gestuurde RAM en disk implementaties van de moderne tijd. Ik kan me de situatie niet voorstellen waar moderne SQL databases werken op basis van gegevens die opgeslagen zijn op ponsbanden of magnetische tapes&#8230;<\/p>\n<\/dd>\n\n\n\n<dt id=\"sp\" class=\"wp-block-simple-definition-list-blocks-term\">32 \u2013 SP \u2013 White space<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Er valt over te twisten of de spatie een echt controle karakter is, omdat het zo vaak gebruikt wordt in reguliere teksten. Maar, net zoals de horizontale tab en de backspace controle karakters in de ASCII karakterset worden genoemd, denk ik dat het het meest natuurlijke is om de white space of forward space ook een controle karakter te noemen. Uiteindelijk representeert het niet een karakter zelf, maar een commando aan het uitvoerapparaat om \u00e9\u00e9n positie voorwaarts te bewegen waarbij de informatie in het huidige veld geleegd wordt. In veel programmatuur zoals tekstverwerkers is de spatie bovendien een karakter dat lijnen kan laten afbreken, en web browsers combineren meerdere spaties tot slechts \u00e9\u00e9n uitvoerkarakter. Dit versterkt mijn geloof dat het niet slechts een uniek karakter representeert, maar een informatiedrager is voor apparatuur en applicaties.<\/p>\n<\/dd>\n\n\n\n<dt id=\"del\" class=\"wp-block-simple-definition-list-blocks-term\">127 \u2013 DEL \u2013 Delete<\/dt>\n\n\n\n<dd class=\"wp-block-simple-definition-list-blocks-details-html\">\n<p>Je kunt je afvragen waarom alle controle codes in de ASCII karakterset lage waarden hebben, terwijl de DEL controle code de waarde 127 heeft. Dit is, omdat dit specifieke karakter gedefinieerd was voor het verwijderen van gegevens op ponsbanden. De meeste ponsbanden uit die tijd gebruikten 7 gaten om de gegevens te coderen. De waarde 127 representeert een binair patroon waar alle zeven bits hoog zijn, dus wanneer het DEL karakter werd gebruikt op een bestaande ponsband werden alle gaten uitgeponst met als gevolg het wissen van het gegeven van de ponsband.<\/p>\n<\/dd>\n<\/dl>\n","protected":false},"excerpt":{"rendered":"<p>ASCII, de geschiedenis ASCII tekenset tabel ASCII controle codes in detail ASCII, de geschiedenis De meest gebruikte computer standaard is zonder twijfel ASCII, the American Standard Code for Information Interchange. Toen men begon met computers te ontwikkelen kwam automatisch de noodzaak op om bepaalde vormen van informatie in een digitaal formaat te defini\u00ebren. Voor getallen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2000,"menu_order":37,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ASCII karakterset tabel - Lammert Bies<\/title>\n<meta name=\"description\" content=\"De ASCII karakters met gedetailleerde beschrijving van de functie van de controle karakters.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ASCII karakterset tabel - Lammert Bies\" \/>\n<meta property=\"og:description\" content=\"De ASCII karakters met gedetailleerde beschrijving van de functie van de controle karakters.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters\" \/>\n<meta property=\"og:site_name\" content=\"Lammert Bies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/lammertbies\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-02T21:31:06+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@lammertbies\" \/>\n<meta name=\"twitter:label1\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data1\" content=\"15 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters\",\"url\":\"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters\",\"name\":\"ASCII karakterset tabel - Lammert Bies\",\"isPartOf\":{\"@id\":\"https:\/\/www.lammertbies.nl\/nl#website\"},\"datePublished\":\"2021-04-27T06:56:01+00:00\",\"dateModified\":\"2021-05-02T21:31:06+00:00\",\"description\":\"De ASCII karakters met gedetailleerde beschrijving van de functie van de controle karakters.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.lammertbies.nl\/nl\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorials over computer interfacing\",\"item\":\"https:\/\/www.lammertbies.nl\/nl\/comm\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Communicatie en interfacing informatie\",\"item\":\"https:\/\/www.lammertbies.nl\/nl\/comm\/info\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"ASCII karakterset tabel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.lammertbies.nl\/nl#website\",\"url\":\"https:\/\/www.lammertbies.nl\/nl\",\"name\":\"Lammert Bies\",\"description\":\"Computer Interfacing\",\"publisher\":{\"@id\":\"https:\/\/www.lammertbies.nl\/nl#\/schema\/person\/5a6c15bc687da8d8d5ef7407fc62c7ba\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.lammertbies.nl\/nl?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"nl-NL\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.lammertbies.nl\/nl#\/schema\/person\/5a6c15bc687da8d8d5ef7407fc62c7ba\",\"name\":\"Lammert Bies\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/www.lammertbies.nl\/nl#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.lammertbies.nl\/wp-content\/uploads\/2021\/04\/lammie.jpg\",\"contentUrl\":\"https:\/\/www.lammertbies.nl\/wp-content\/uploads\/2021\/04\/lammie.jpg\",\"width\":537,\"height\":541,\"caption\":\"Lammert Bies\"},\"logo\":{\"@id\":\"https:\/\/www.lammertbies.nl\/nl#\/schema\/person\/image\/\"},\"description\":\"is a dad, husband and polyglot. He is developing embedded systems since the eighties. Used machine learning before it had a name. Specializes in interconnecting computers, robots and humans. Was a Google Mapmaker Advocate and speaker on several international Google conferences from 2011 until the plug was pulled on Mapmaker in 2017. Currently spreading artificial intelligence to the wildest locations in production environments. He never stops learning.\",\"sameAs\":[\"https:\/\/www.lammertbies.nl\",\"https:\/\/www.facebook.com\/lammertbies\",\"https:\/\/www.linkedin.com\/in\/lammertbies\/\",\"https:\/\/x.com\/lammertbies\",\"https:\/\/bughunter.withgoogle.com\/profile\/1aaf547a-f30a-4145-b7f7-32259a48fa50\",\"https:\/\/github.com\/lammertb\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ASCII karakterset tabel - Lammert Bies","description":"De ASCII karakters met gedetailleerde beschrijving van de functie van de controle karakters.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters","og_locale":"nl_NL","og_type":"article","og_title":"ASCII karakterset tabel - Lammert Bies","og_description":"De ASCII karakters met gedetailleerde beschrijving van de functie van de controle karakters.","og_url":"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters","og_site_name":"Lammert Bies","article_publisher":"https:\/\/www.facebook.com\/lammertbies","article_modified_time":"2021-05-02T21:31:06+00:00","twitter_card":"summary_large_image","twitter_site":"@lammertbies","twitter_misc":{"Geschatte leestijd":"15 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters","url":"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters","name":"ASCII karakterset tabel - Lammert Bies","isPartOf":{"@id":"https:\/\/www.lammertbies.nl\/nl#website"},"datePublished":"2021-04-27T06:56:01+00:00","dateModified":"2021-05-02T21:31:06+00:00","description":"De ASCII karakters met gedetailleerde beschrijving van de functie van de controle karakters.","breadcrumb":{"@id":"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lammertbies.nl\/nl\/comm\/info\/ascii-characters#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lammertbies.nl\/nl"},{"@type":"ListItem","position":2,"name":"Tutorials over computer interfacing","item":"https:\/\/www.lammertbies.nl\/nl\/comm"},{"@type":"ListItem","position":3,"name":"Communicatie en interfacing informatie","item":"https:\/\/www.lammertbies.nl\/nl\/comm\/info"},{"@type":"ListItem","position":4,"name":"ASCII karakterset tabel"}]},{"@type":"WebSite","@id":"https:\/\/www.lammertbies.nl\/nl#website","url":"https:\/\/www.lammertbies.nl\/nl","name":"Lammert Bies","description":"Computer Interfacing","publisher":{"@id":"https:\/\/www.lammertbies.nl\/nl#\/schema\/person\/5a6c15bc687da8d8d5ef7407fc62c7ba"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lammertbies.nl\/nl?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"nl-NL"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lammertbies.nl\/nl#\/schema\/person\/5a6c15bc687da8d8d5ef7407fc62c7ba","name":"Lammert Bies","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/www.lammertbies.nl\/nl#\/schema\/person\/image\/","url":"https:\/\/www.lammertbies.nl\/wp-content\/uploads\/2021\/04\/lammie.jpg","contentUrl":"https:\/\/www.lammertbies.nl\/wp-content\/uploads\/2021\/04\/lammie.jpg","width":537,"height":541,"caption":"Lammert Bies"},"logo":{"@id":"https:\/\/www.lammertbies.nl\/nl#\/schema\/person\/image\/"},"description":"is a dad, husband and polyglot. He is developing embedded systems since the eighties. Used machine learning before it had a name. Specializes in interconnecting computers, robots and humans. Was a Google Mapmaker Advocate and speaker on several international Google conferences from 2011 until the plug was pulled on Mapmaker in 2017. Currently spreading artificial intelligence to the wildest locations in production environments. He never stops learning.","sameAs":["https:\/\/www.lammertbies.nl","https:\/\/www.facebook.com\/lammertbies","https:\/\/www.linkedin.com\/in\/lammertbies\/","https:\/\/x.com\/lammertbies","https:\/\/bughunter.withgoogle.com\/profile\/1aaf547a-f30a-4145-b7f7-32259a48fa50","https:\/\/github.com\/lammertb"]}]}},"_links":{"self":[{"href":"https:\/\/www.lammertbies.nl\/nl\/wp-json\/wp\/v2\/pages\/2066"}],"collection":[{"href":"https:\/\/www.lammertbies.nl\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lammertbies.nl\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lammertbies.nl\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lammertbies.nl\/nl\/wp-json\/wp\/v2\/comments?post=2066"}],"version-history":[{"count":0,"href":"https:\/\/www.lammertbies.nl\/nl\/wp-json\/wp\/v2\/pages\/2066\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.lammertbies.nl\/nl\/wp-json\/wp\/v2\/pages\/2000"}],"wp:attachment":[{"href":"https:\/\/www.lammertbies.nl\/nl\/wp-json\/wp\/v2\/media?parent=2066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}