Kiitos tuestanne, mutta asia ei ole vielä ratkennut ... Kerron välillä, mitä olen eri kansainvälisistä lähteistä saanut selville.
1. Terminal
Terminal pitää olla asetettuna alkuperäiseen asentoon:
Pääte / Ikkunan asetukset / Näyttö / Merkkien koodaus = Unicode (UTF-8). Tällöin "echo päivää" toimii odotetusti.
2. locale
Komennolla "locale" näkee, että merkistö on "C", mikä tarkoittanee unixin oletusta. Näyte:
Koodi: Valitse kaikki
$ echo yö > päivä
$ file päivä
cannot open (p\303\244iv\303\244)
$ file p*
pa¨viva¨: UTF-8 Unicode text
Järjestelmä ymmärtää saavansa UTF-8-tekstiä näppäimistöltä, mutta tiedostonimet eivät toimi. Ei hyvä.
Komennolla "export LC_CTYPE=fi_FI.UTF-8" saadaan vähän toimiva asetus:
Koodi: Valitse kaikki
$ echo yö > päivä
$ file päivä
päivä: UTF-8 Unicode text
$ od -c < päivä
0000000 y ö ** \n
0000004
(od -c esittää siis ö:n "ö **", kaksi tavua.)
3. .term
En saanut selville, miten tällainen asetus saadaan aina päälle. Laitoin lauseen tiedostoon ~/bash.term, mutta se ei vaikuta, vaikka laitoin
Pääte / Asetukset / Avaan tallennettu ~/bash.term -tiedosto. Pitää tehdä toisin?
4. Java
Javasta opin sivulta
http://www.macosxhints.com/article.php? ... 8053951714 , että System.out tulostaakin MacRoman -merkistöä. Oikea merkistö voidaan antaa suoritettaessa komentorivillä. Tällaiset vaihtoehdot löysin (maailmaU.java on UTF-8 -merkistöllä kirjoitettu, maailma.java Latin15:lla):
Koodi: Valitse kaikki
$ cat > maailmaU.java
public class maailmaU {
public static void main(String[] args) {
System.out.println("Päivää " + args[0]);
}
}
$ file *
maailma.class: compiled Java class data, version 46.0
maailma.java: ISO-8859 C++ program text
maailmaU.class: compiled Java class data, version 46.0
maailmaU.java: UTF-8 Unicode C++ program text
$ java maailmaU Ähtäri
Päivää ?ht?ri
$ java -Dfile.encoding=UTF8 maailmaU Ähtäri
Pv§ivv§v§ Ähtäri
$ java -Dfile.encoding=UTF8 maailma Ähtäri
P‰iv‰‰ Ähtäri
Ei siis yhdistelmää, jossa ohjelmakoodin merkit ja komentorivin merkit tulisivat oikein.
5. recode
On (ollut) olemassa ohjelma "recode", jolla voi tehdä tiedostosta kopion toisessa merkistössä. Tällä hetkellä ei näköjään saatavissa osoitteessa
http://sourceforge.net/projects/recode .
javascript:addtext('[:'(]')