ASCII
ASCII (akronyymi sanoista American Standard Code for Information Interchange) on 7-bittinen eli 128 merkkipaikan laajuinen tietokoneiden merkistö, joka sisältää ensisijaisesti amerikanenglannissa tarvittavat kirjaimet, numerot, väli- ja erikoismerkkejä sekä eräitä ohjauskoodeja. Lähes kaikkien nykyisin yleisessä käytössä olevien tietokonemerkistöjen 128 ensimmäistä merkkiä ovat samat kuin ASCII:ssa, joten ne voidaan luokitella ASCII:n laajennuksiksi. Unicode-merkistön yhteydessä tätä ensimmäistä lohkoa kutsutaan latinalaiseksi perusosaksi.
Joskus kuulee virheellisesti puhuttavan ”8-bittisestä ASCII:sta” tai ”high-ASCII:sta”, jonka merkkipaikkojen määrä olisi kaksinkertaistettu 256:een ottamalla käyttöön ASCII:ssa ylimääräiseksi jäänyt tavun kahdeksas bitti. Tällaisia merkistöjä on ASCII:n pohjalta kuitenkin kehitetty useita, eikä niistä yhteenkään ole asianmukaista viitata nimellä ASCII. Koska 8-bittiseenkään merkistöön eivät mahdu edes kaikkien latinalaisin aakkosin kirjoitettavien kielten kirjaimet, alueittain on pitänyt kehittää keskenään yhteensopimattomia laajennusversioita, joista länsieurooppalaisittain ja suomalaisittain tärkein on ISO 8859-1 eli niin sanottu Latin 1 ‑merkistö. Lisäksi esimerkiksi MS-DOS-järjestelmän käyttämien ASCII-pohjaisten merkistöjen laajennusosat poikkeavat täysin Windowsin merkistöistä, jotka ovat ISO 8859 ‑standardien muunnelmia.
Historia
ASCII kehitettiin 1960-luvulla paperille tulostavien kaukokirjoitinlaitteiden ja tietokonepäätteiden merkistöksi ja ohjauskoodistoksi. Aikaisemmat laitteet käyttivät yleensä 5-bittistä Baudot-koodia.
Ennen ASCII:ta oli yli 60 tapaa merkistökoodaukselle tietokoneissa.[1] Kehitystyöhön osallistuneista merkittäviin kuuluu Bob Bemer, jota on kutsuttu ASCII:n "isäksi".[2] Vuonna 1961 IBM:lle työskentelevä Bemer toimitti American National Standards Institutelle (ANSI) ehdotuksen yhteiselle merkistökoodaukselle.[3] X3.4-komitea perustettiin työskentelmään koodauksen parissa. 17. kesäkuuta 1963 ASCII hyväksyttiin standardiksi, mutta se ei heti saavuttanut suurta kannatusta koska IBM käytti EBCDIC-koodausta vuonna 1964 julkaistussa S/360-sarjassa.[3] Myös IBM suunnitteli ASCII:n ottamista käyttöön, mutta kun S/360 oli lähellä julkaisua reikäkortti- ja tulostinlaitteet eivät olleet valmiita ja IBM päätti käyttää EBCDIC-merkistöä.[1] ASCII:ta kehitettiin ja muutettiin edelleen kunnes vuonna 1968 presidentti Lyndon B. Johnson antoi määräyksen, että ASCII olisi käytössä liittovaltion järjestelmissä ja että uusien järjestelmien olisi tuettava ASCII:ta.[3]
Merkkivalikoima perustuu lähinnä Yhdysvaltojen tarpeisiin. Tämä on aiheuttanut jatkuvia ongelmia ei-englanninkielisen tekstin käsittelyssä: esimerkiksi suomen kielen aakkosista kirjaimet A–Z sisältyvät kaikkiin ASCII-merkistön muunnoksiin ja näkyvät siis käytännössä aina oikein, mutta niin sanotut ääkköset (Å, Ä, Ö) aiheuttavat yllättävän usein yhteensopivuusongelmia vielä nykyäänkin.
US-ASCII
ASCII-määritys julkaistiin Yhdysvalloissa ASA X3.4 ‑standardina alun perin vuonna 1963.[4] Hieman myöhemmin, 1967, sitä täydennettiin pienaakkosilla ja symboleilla. Yhdysvaltain ASCII-standardista käytetään myös nimitystä US-ASCII, joka tarkoittaa täsmälleen samaa kuin ASCII. Sen nykyinen versio on määritelty ANSI-standardissa ANSI X3.4-1986.[5]
ASCII-merkistö määrittää 128 merkkipaikkaa, joihin kuuluvat amerikanenglannin isot ja pienet kirjaimet A–Z, numerot 0–9, välilyönti sekä väli- ja erikoismerkit !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
. Merkistön alkupäästä ja lopusta on yhteensä 33 merkkipaikkaa varattu ohjauskoodeille, joten erilaisia kirjoitusmerkkejä mahtuu ASCII-merkistöön 95.
Kansainväliseksi standardiksi
ISO-standardi merkistöstä tuli vuonna 1972. Kansainvälinen ISO-646-IRV (international reference version) ‑määritys erosi ASCII-merkistöstä sikäli, että dollarin merkin ($) tilalla oli yleinen valuuttamerkki (¤) ja aaltoviivan (~) tilalla oli yläviiva (¯). Vuonna 1991 kansainvälinen versio mukautettiin vallitsevaan käytäntöön korvaamalla valuuttamerkki dollarin merkillä. Se on nykyään aivan samanlainen kuin yhdysvaltalainen versio ISO-646-US eli US-ASCII.
ASCII ei sisällä Ä- ja Ö-kirjainten kaltaisia tarkkeellisia kirjaimia, joita tarvitaan muissa kuin englannin kielessä. Monet kansalliset kirjaimet sai kuitenkin paperipäätteillä ja kirjoittimilla aikaiseksi tulostamalla kaksi merkkiä päällekkäin, esimerkiksi ä ← a
+ "
(a ja pystylainausmerkki) ja ñ ← n
+ ~
(n ja tilde). Eräät ASCII-merkit, nimittäin tilde ja sirkumfleksi (^
), tarkoitettiinkin alun perin nimenomaan tarkkeiksi kansallisten kirjainten muodostusta varten. Alaviiva (_
) puolestaan tarkoitettiin alleviivausten tuottamiseen. Usean merkin tulostaminen samaan kohtaan ei kuitenkaan ollut mahdollista näytöllä. Näyttöjen yleistyessä piti kansalliset kirjaimet viimeistään saada osaksi varsinaista merkistöä.
Kansalliset muunnelmat
Euroopan maissa kansalliset merkit saatiin käyttöön korvaamalla niillä osa erikoismerkeistä. Esimerkiksi ASCII-merkistön suomalainen versio (ISO646-FI) korvasi merkit [\]^ merkeillä ÄÖÅÜ ja merkit {|}~ merkeillä äöåü. @ korvattiin é:llä. Tämä merkistö tunnetaan myös suomalaisella nimellä SF-2. Monilla muillakin Euroopan mailla oli oma kansallinen standardinsa.
Ratkaisu oli kömpelö etenkin, jos merkistöä käytettiin ohjelmointiin. Tällöin oli usein tehtävä valinta ääkkösten ja ohjelmoinnissa välttämättömien hakasulkujen välillä. Tällaiset merkistöt olivat kuitenkin yleisiä vielä 1980-luvulla, kun käytössä oli paljon järjestelmiä, joiden merkistökoodauksen leveys rajoittui 7 bittiin.
ASCII-merkit
(merkkikoodit heksadesimaalisina)
koodi | …0 | …1 | …2 | …3 | …4 | …5 | …6 | …7 | …8 | …9 | …a | …b | …c | …d | …e | …f |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0… | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
1… | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US |
2… | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
3… | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4… | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5… | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
6… | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7… | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL |
Katso myös
Lähteet
- Mary Brandel: 1963: The debut of ASCII edition.cnn.com. 6.7.1999. Viitattu 8.10.2022. (englanniksi)
- Computer Pioneer Bob Bemer, 84 washingtonpost.com. 25. kesäkuuta 2004. Viitattu 8.10.2022. (englanniksi)
- ASCII britannica.com. Viitattu 6.10.2022. (englanniksi)
- http://www.wps.com/J/codes/X3.4-1963/index.html (Arkistoitu – Internet Archive)
- ANSI X3.4-1986 (R1997) webstore.ansi.org. Viitattu 29.8.2022. (englanniksi)
Aiheesta muualla
- Jukka Korpela: Merkit ja koodaukset.
- Lista ASCII- ja HTML-symbolien koodeista (englanniksi)
- ANSI X3.4-1977 (PDF) (englanniksi)