Kirjoitettu Teknillisen korkeakoulun atk-keskuksessa 1995-02-27. Tällä dokumentilla on lähinnä historiallista merkitystä. - Jukka Korpela

Ohjeita kahdeksanbittisyyteen siirtymisestä

Mistä on kyse?

Yleisesti etenkin Unix-tietokoneissa käytettiin pitkään ns. seitsenbittistä Ascii-merkistöä, jossa ei ole omia merkkejä skandinaavisille kirjaimille å, ä ja ö. Suomessa noudatettiin yleisesti sopimusta, jonka mukaan skandinaavisten kirjainten esittämiseen käytettiin merkkipaikkoja, jotka Asciissa vastaavat erikoismerkkejä. Seuraavassa taulukossa kukin rivi sisältää kirjaimen sekä erikoismerkin, jonka tilalla se on:
å   }   (oikea aaltosulku, right brace)
ä   {   (vasen aaltosulku, left brace)
ö   |   (pystyviiva, vertical bar)
Å   ]   (oikea hakasulku, right bracket)
Ä   [   (vasen hakasulku, left bracket)
Ö   \   (kenoviiva, backslash)
Nyt ollaan siirtymässä ja monin paikoin on jo siirrytty kahdeksanbittiseen merkkikoodiin ISO-Latin-1 (virallisimmalta nimeltään ISO 8859-1). Se on Ascii-koodin laajennus, jossa skandinaavisille kirjaimille on omat merkkipaikat. Se vastaa melko tarkoin Windowsissa käytettyä merkistöä. Nyt TKK:n atk-keskuksen Unix-koneet (paitsi Hila) tukevat ISO-Latin-1-merkistöä.

Siirtymisestä aiheutuu monenlaista hankaluutta, koska monet ohjelmat (käyttöjärjestelmien komentotulkit, tietoliikenneohjelmat, sovellusohjelmat) sekä monet päätelaitteet on tehty seitsenbittistä koodia ajatellen, eivätkä ne siksi toimi kunnolla kahdeksanbittisessä maailmassa ainakaan ilman muutostöitä.

Ohjeet peruskäyttäjille

Päätetyyppiä vt100 ei enää kannata käyttää, koska siihen ei sisälly kahdeksanbittisyyden tukea. Käytä sen sijaan esim. päätetyyppiä vt220 tai vt320. Käytännössä atk-keskuksen Unix-koneet normaalisti kysyvät päätetyypin yhteydenoton alussa. Jos siihen vastataan esim. vt220, on luonnollisestikin tarkistettava, että pääte todella on asetettu vt220-tilaan. Jos kyseessä on vanha pääte, joka ei tue kahdeksanbittisyyttä, ei oikein ole muuta vaihtoehtoa kuin ostaa uusi taikka elää sen kanssa, että skandinaaviset kirjaimet eivät näy lainkaan tai näkyvät kummallisina merkkeinä.

Jos käytät mikroa päätteenä, huolehdi siitä, että pääte-emulaattori osaa esim. vt220-emuloinnin. Tämä voi edellyttää uudemman version hankkimista emulaattorista. Esimerkiksi NCSA-Telnetistä PC-koneille on olemassa "viritetty" versio, joka tukee ISO-Latin-1:n skandinaavisia kirjaimia (ei koko merkistöä); sen saa esim. FTP:llä koneesta ftp.helsinki.fi (tiedosto public_disk/msdos/net/tcpip/all/telbin.exe). Vaihtoehtona on siirtyä käyttämään NCSA-Telnetin asemesta esim. Kermitiä tai PC-TCP:tä. Kermit maksuton, PC-TCP on maksullinen.

Tutustu käyttämääsi näppäimistöön, erityisesti siihen, miten siitä saa aikaan toisaalta skandinaaviset kirjaimet, toisaalta haka- ja aaltosulut sekä pysty- ja kenoviivan.

Sähköpostiohjelmista mm. Pine ja Elm osaavat kahdeksanbittisyyden. Sama koskee Pegasus- ja Eudora-ohjelmaa, kunhan niistä käytetään uusimpia versioita. Sensijaan Unixin mail-ohjelma ei osaa, eikä sitä suositella.

Yleisesti on huomattava, että sähköpostiviestin otsikkorivillä (Subject) ei voi käyttää skandinaavisia kirjaimia.

Ota huomioon, että vaikka sinä käytät kahdeksanbittistä merkistöä, muut eivät välttämättä vielä käytä. Erityisesti sähköpostissa ja newseissa on vielä melkoisen tavallista kirjoittaa seitsenbittistä Asciita. Lisäksi lähetettäessä sähköpostia esimerkiksi X.400-järjestelmään ei kahdeksanbittisiä skandinaavisia kirjaimia kannata toistaiseksi käyttää.

Jos sinulla on tekstitiedosto, joka sisältää suomen- tai ruotsinkielistä tekstiä seitsenbittisenä Asciina (siis ä:n tilalla on { jne.), voit muuntaa tiedoston kahdeksanbittiseksi seven2iso-komennolla. Jos taas tiedostossa (esim. C-ohjelmassa) osa {-merkeistä edustaa ä-kirjainta ja osan on todellakin tarkoitus olla vasen aaltosulku, täytyy muunnos tehdä "käsin" esimerkiksi Emacsin query replace -toiminnolla.

Otettaessa yhteyttä toiseen koneeseen rlogin-komennolla kannattaa käyttää optiota -8 (esim. rlogin vipunen -8).

Tulostettaessa kahdeksanbittisiä merkkejä sisältäviä tiedostoja enscript-komennolla ei mitään merkistöön liittyviä optioita tarvita, sillä optio -EL1 (joka määrää käyttämään ISO-Latin-1:tä) on oletusarvona. Optiota -s ei tällöin ole syytä käyttää.

Vaikka skandinaavisten kirjainten käyttö tiedostonnimissä on periaatteessa mahdollista, se on erittäin epäsuositeltavaa, koska se voi aiheuttaa monenlaisia ongelmia.

Emacs-editori toimii kahdeksanbittisenä. Tuki on aitoa siinä mielessä, että kahdeksanbittiset skandinaaviset kirjaimet ovat kirjaimen asemassa sanoja käsiteltäessä.

Jos käytät LaTeX-ohjelmaa, ota huomioon seuraava: Atk-keskus tukee vain uutta LaTeXia. (Vanhassa LaTeXissa käytettiin documentstyle-makroa, uudessa documentclass-makroa.) Siinä tarvitaan seuraavat:

\documentclass{xxx}
\usepackage{t1enc,a4,latin1}
taikka, jos teksti on suomea,
\documentclass[finnish]{xxx}
\usepackage{t1enc,latin1,a4,babel}
Jos teksti on ruotsia, menettely on vastaava, mutta sanan finnish tilalla on swedish. Edellä xxx tarkoittaa haluttua dokumenttityyppiä, esim. article.

Jos olet käyttänyt Hila-nimistä atk-keskuksen konetta, suosittelemme siirtymistä muiden koneiden käyttöön. Kyseisessä koneessa ei voida tai ei ole tarkoituksenmukaista tukea kahdeksanbittisyyttä.

Lisäohjeita

Seuraavat lisäohjeet on tarkoitettu niille käyttäjille, jotka eivät käytä atk-keskuksen tekemää oletusympäristöä Unix-koneissa tai joilla muusta syystä on tarvetta tietää, miten kahdeksanbittisyyteen siirtymiseen liittyviä asioita on teknisesti hoidettu.

Oletusympäristössä shellinä on tcsh, ja käyttäjällä on tiedosto .cshrc, jossa on komento source /p/setup/shell-defaults/cshrc-system-default. Jos oma tilanteesi on toinen, huolehdi siitä, että seuraavat asiat ovat kunnossa:

Kahdeksanbittisten merkkien päästäminen läpi hoidetaan komennolla

/bin/tty -s && /bin/stty cs8 -istrip -parenb -evenp
Jos komentotulkkina on tcsh, ympäristömuuttujan LC_CTYPE arvon tulee olla Muut komentotulkit osaavat kahdeksanbittiset merkit, kunhan vain pääteasetukset ovat kunnossa.

Jotta less-ohjelma toimisi, on ympäristömuuttujan LESSCHARSET arvon oltava latin1.

Emacsin pitäisi toimia kahdeksanbittisenä, mutta jos se ei toimi, tarkista, että .emacs-tiedostossasi ei ole mitään, mikä kumoaisi seuraavat oletusasetukset:

  (standard-display-european 1)
  (set-input-mode (car (current-input-mode))
      (nth 1 (current-input-mode))
      'accept-8bit-input)