Kirjoittaja Aihe: boottiskripti ja UTF-8 (käynnistettävä java-ohjelma vaatii UTF-8, ei käynnisty)  (Luettu 5036 kertaa)

aapo

  • Käyttäjä
  • Viestejä: 195
    • Profiili

Minulla on kotihakemistossa javalla tehty ohjelma, joka käynnistyy kun kirjoitan 'java Ohjelma'.
Tämä siis toimii.

Kun teen boottiskriptin (osaan tehdä boottiskriptin), jonka 'järjestysnumero' on 99.
Hakemistoissa /etc/rc*.d/  kaikki tuohon skriptiin viittaavat alkavat K99 ja S99.


Ohjelma ei kuitenkaan käynnisty kun koneen boottaa.
Silti kun ensimmäiseksi käskyksi kirjautumisen jälkeen laittaa 'java Ohjelma', niin toimii.

Syy löytyi:
Koodia: [Valitse]
less /var/log/boot 
Syyksi selvisi: Tuo java-Ohjelma lukee käynnistyessään alustus-tiedostoa (puhdasta tekstiä), ja joukossa oli skandinaavisia merkkejä, joita se ei osannutkaan käsitellä oikein.

locale näyttää että fi_FI.UTF-8 ja siinä olisi tarkoitus pysyä.

Varsinainen KYSYMYS:
Missä vaiheessa ubuntu käynnistyessään siirtyy käyttämään tuota UTF-8?
Pystynkö bootissa automaattisesti käynnistämään mitään joka vaatii UTF-8?
(vaatii = haluan että käyttää ja tukee sitä)

(
Triviaalit-ratkaisut:
1) poistan ini-tiedostoista skandit -> työtä ja menetän tärkeitä kirjaimia
2) koneen käynnistyttyä kirjoitan itse tuon java Ohjelma
)

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
En osaa muihin kysymyksiisi vastata mutta javan merkistökoodausta pystyy vaihtamaan antamalla sille ajettaessa parametrin tyyliin "java -Dfile.encoding=ISO-8859-1 Ohjelma".

Sinä tosin halusit utf-8-koodauksen joten vaihdat sen tuon tilalle. Allekirjoittanutta tosin hämmentää miksi java yrittäisi lukea niitä buutissa jollain muulla kuin utf-8-koodauksella.

DtW

  • Vieras
Missä vaiheessa ubuntu käynnistyessään siirtyy käyttämään tuota UTF-8?
Pystynkö bootissa automaattisesti käynnistämään mitään joka vaatii UTF-8?

”Koko Ubuntu” ei käytä koskaan UTF-8-lokaalia, lähinnä vain käyttäjien prosessit. Jos haluat varmistaa, että uusi prosessi käyttää tiettyä lokaalia, käynnistä se esimerkiksi seuraavalla tavalla:

Koodia: [Valitse]
LC_ALL=fi_FI.UTF-8 ohjelmannimi

Jos kyseessä on sh- tai bash-skripti, jonka kaikki komennot halutaan ajaa tietyllä lokaalilla, kannattaa laittaa skriptin alkuun seuraava komento:

Koodia: [Valitse]
LC_ALL=fi_FI.UTF-8 ; export LC_ALL

aapo

  • Käyttäjä
  • Viestejä: 195
    • Profiili
Kiitos, pistin skriptin alkuun
 LC_ALL=fi_FI.UTF-8 ; export LC_ALL
Toimii.