Zelfs als je geen ontwikkelaar bent, heb je het woord 'ASCII' vast al eens gehoord. Je hebt misschien wel eens ervaren dat tekst op het web gebroken is en eruitziet als een buitenaards teken, of dat je een technische foutmelding kreeg als "ASCII-code is niet compatibel".

Wat maakt deze ASCII-code zo speciaal dat het wordt behandeld als de 'gemeenschappelijke taal' van de digitale wereld? Vandaag gaan we kijken naar de meest fundamentele overeenkomst waardoor computers menselijke taal begrijpen: de ASCII-code.


1. Computers begrijpen alleen cijfers



De letters die we op het scherm zien, zoals 'A', 'B', 'C', zijn voor de computer geen afbeeldingen of teksten. Computers zijn namelijk slechts rekenmachines die uitsluitend 0's en 1's (binaire getallen) kunnen begrijpen.

Hoe worden de letters die we via het toetsenbord invoeren dan opgeslagen op de computer? Tussen mensen en computers is er een "afspraak" nodig.

"Laten we nummer 65 als de letter 'A' beschouwen."

"Nummer 97 wordt de kleine letter 'a'."

Deze afspraken zijn systematisch vastgelegd in een tabel die ASCII (American Standard Code for Information Interchange) heet. Zoals de naam al aangeeft, is het de Amerikaanse standaardcode voor informatie-uitwisseling.

2. De structuur van ASCII-code: De magie van 7-bits

ASCII-code werd in de jaren '60 vastgesteld. Toen werden computerbronnen zeer beperkt gevonden, dus moesten we zo efficiënt mogelijk gebruik maken van tekens. Daarom koos men voor 7-bits.

  • Totaal 128 symbolen: Er zijn $2^7$, ofwel totaal 128 mogelijkheden die met 7-bits kunnen worden weergegeven, van 0 tot 127.

  • Componenten:

    • Controle symbolen (0~31): Deze worden niet weergegeven op het scherm, maar zijn verantwoordelijk voor communicatieregels of voor het afbreken van regels (Line Feed) en tabbladen (Tab).

    • Uitvoerbare symbolen (32~127): Dit omvat speciale tekens, cijfers (0-9), hoofdletters van het Latijnse alfabet (A-Z) en kleine letters (a-z).

3. Waarom gebruiken we nog steeds ASCII?



Technologie is enorm vooruitgegaan, maar ASCII-code blijft de wortel van de digitale wereld. Wat is de reden daarvoor?

1) De koning van compatibiliteit

Zelfs de meest moderne en veelgebruikte afbeeldingscodering, UTF-8, is perfect compatibel met ASCII-code. In een UTF-8-document heeft de Engelse letter 'A' precies dezelfde gegevens als in ASCII-code. Dit betekent dat er helemaal geen problemen ontstaan bij de uitwisseling van Engelse gegevens tussen zeer oude legacy-systemen en moderne systemen.

2) De basis van programmeren

In programmeren zijn de regels van de ASCII-waarden zeer nuttig bij het omgaan met tekens.

  • 'A' is 65, 'a' is 97.

  • Het verschil tussen deze twee waarden is precies 32.

    Ontwikkelaars gebruiken deze numerieke regels om hoofdletters en kleine letters om te zetten of om gegevens efficiënt te sorteren.

3) De lichtste gegevens

Aangezien alle letters binnen 1 byte (Byte) worden verwerkt, zijn documenten die alleen in het Engels (Latijnse letters) zijn geschreven, zeer klein in bestandsgrootte en snel in verwerking. Dit is de reden waarom de meeste internetcommunicatieprotocollen (HTTP, enz.) op ASCII zijn gebaseerd.

4. De erfenis van ASCII: ASCII-kunst (ASCII Art)

ASCII-code heeft, naast een eenvoudige communicatieregels, ook een cultuur gecreëerd. In de tijd van terminals die geen grafische ondersteuning boden, maakten mensen afbeeldingen met alleen de letters van het toetsenbord. In de Japanse drama "電車男" uit het einde van de jaren '90 - begin van de jaren 2000, was er een personage dat geweldige kunst maakte met ASCII.

   |\---/|
   | o_o |
    \_^_/

Deze cultuur van het ontwikkelen van geestige uitdrukkingen met slechts 128 beperkte symbolen komt tegenwoordig vaak voor in de opmerkingen (Comment) van de broncode van ontwikkelaars of in e-mailhandtekeningen.

Voorbeeld van ASCII-kunst uit de drama Densha Otoko

5. De beslissende beperkingen van ASCII: De wereld gebruikt niet alleen Engels

Maar ASCII heeft een fatale tekortkoming. Dat ligt al in de naam: "Amerikaanse standaard (American Standard)".

In die kleine 7-bits ruimte was er geen ruimte voor niet-Latijnse culturele tekens zoals Chinese, Koreaanse, Japanse (CJK), evenals Arabische, Hindi en Cyrillische letters.

Daarom moesten verschillende taalgebieden in het verleden hun eigen coderingen maken (EUC-KR, Shift_JIS, Big5, enz.). Wanneer gegevens tussen landen die verschillende methoden gebruikten werden uitgewisseld, werden de tekens vaak weergegeven als of □□, onbegrijpelijke symbolen, een fenomeen dat bekend staat als mojibake (moji-bake, lettergrepen kunnen niet worden weergegeven).

Uiteindelijk was er behoefte aan een nieuwe standaard die alle tekens ter wereld samenvoegde, en dat leidde tot de geboorte van de Unicode. Interessant genoeg is nog steeds de eerste plek (0-127) in deze enorme Unicode gereserveerd voor ASCII-code. Het is een eerbetoon aan het begin van de digitale geschiedenis.


Samenvatting

  1. Definitie: Een initiële standaard afspraak waarbij computerletters (0-127) één op één aan cijfers worden gekoppeld.

  2. Kenmerken: Bevat alleen Latijnse letters, cijfers en eenvoudige speciale tekens.

  3. Beperkingen: Kan geen niet-Latijnse letters zoals CJK (Chinees, Koreaans, Japans) en Arabisch weergegeven.

ASCII-code is niet slechts een reeks cijfers. Het is de meest fundamentele alfabet die de inspanning en efficiëntie van vroege computerwetenschappers weerspiegelt, die probeerden menselijke taal te vertalen naar de taal van machines.


Volgende post preview

Laten we de smalle ruimte van ASCII achter ons laten en de grote afspraak ontdekken die alle talen en emoji's (😊) van de wereld omvat: de principes van Unicode. Als je benieuwd bent naar het antwoord op "Waarom worden mijn letters verbroken?", blijf dan hangen voor de volgende post!