Tämä artikkeli kertoo merkistökoodauksesta. Tietotekniikkayhtiöstä kertooASCII. Lisää merkityksiätäsmennyssivulla.
ASCII-merkistön kirjoitusmerkit.
ASCII (akronyymi sanoistaAmericanStandardCode forInformationInterchange) on 7-bittinen eli 128 merkkipaikan laajuinen tietokoneidenmerkistö, joka sisältää ensisijaisestiamerikanenglannissa 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 kutsutaanlatinalaiseksi 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äänyttavun 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 onISO 8859-1 eli niin sanottu Latin 1 ‑merkistö. Lisäksi esimerkiksiMS-DOS-järjestelmän käyttämien ASCII-pohjaisten merkistöjen laajennusosat poikkeavat täysinWindowsin merkistöistä, jotka ovat ISO 8859 ‑standardien muunnelmia.
Ennen ASCII:ta oli yli 60 tapaa merkistökoodaukselle tietokoneissa.[1] Kehitystyöhön osallistuneista merkittäviin kuuluuBob Bemer, jota on kutsuttu ASCII:n "isäksi".[2] Vuonna 1961IBM:lle työskentelevä Bemer toimittiAmerican 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äyttiEBCDIC-koodausta vuonna 1964 julkaistussaS/360-sarjassa.[3] Myös IBM suunnitteli ASCII:n ottamista käyttöön, mutta kun S/360 oli lähellä julkaisuareikäkortti- jatulostinlaitteet eivät olleet valmiita ja IBM päätti käyttää EBCDIC-merkistöä.[1]ASCII:ta kehitettiin ja muutettiin edelleen kunnes vuonna 1968 presidenttiLyndon 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.
ASCII-määritys julkaistiin Yhdysvalloissa ASA X3.4 ‑standardina alun perin vuonna1963.[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.
ISO-standardi merkistöstä tuli vuonna1972. Kansainvälinen ISO-646-IRV (international reference version) ‑määritys erosi ASCII-merkistöstä sikäli, että dollarin merkin ($) tilalla oli yleinenvaluuttamerkki (¤) 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 kuitenkinpaperipäätteillä jakirjoittimilla aikaiseksi tulostamalla kaksi merkkiä päällekkäin, esimerkiksi ä ← a + " (a ja pystylainausmerkki) ja ñ ← n + ~ (n ja tilde). Eräät ASCII-merkit, nimittäin tilde jasirkumfleksi (^), tarkoitettiinkin alun perin nimenomaantarkkeiksi 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öä.
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.