logo

Java, DOS, Unicode, Sublime, æ, ø og å

Norske tegn (æ, ø, å, Æ, Ø og Å) kan fremdeles skape problemer, f.eks. ved utskrift med println fra Java-applikasjoner i DOS. Denne siden gir noen tips for å håndtere dette.

Vi ønsker å kunne:

  • Lagre og redigere Java kildekode med tegnsett Unicode (UTF-8).
  • Kjøre Java-program slik at norske tegn blir vist korrekt - både fra kommandolinjen i DOS og direkte fra en editor som Sublime.

Bakgrunnsinformasjon om tegnsett

Kortversjonen er at Java er basert på Unicode, mens DOS bruker et eldre tegnsett basert på Ascii, og det er dette som skaper problemene nevnt over. Et tegnsett er en tilordning av tallkoder til forskjellige tegn. Unicode (ny) og Ascii (gammel) er to tegnsett. UTF-8 er en konkret måte å kode Unicode på, der man bruker flere byter (et variabelt antall) for å representere ett tegn. En såkalt "Windows codepage" er omtrent det samme som et tegnsett. I DOS-vinduet er codepage 850 standard, og her brukes 1 byte for å kode hvert tegn (som betyr at man får færre tegn tilgjengelig). Mer utfyllende informasjon:

Redigere kildekode i Sublime

Sublime er satt opp til å bruke UTF-8. Dvs. at Java-filer automatisk blir lagret i tegnsett UTF-8. Man kan også bestemme tegnsett UTF-8 eksplisitt under menyvalget Save As.

Enten du laster ned Java-filer lagret i UTF-8 fra nettet, eller klipper-og-limer fra nettsider på UTF-8 format, så skal norske tegn i kildekoden bli vist korrekt.

Vise Unicode-filer i DOS-vinduet

Filer (Java-filer eller andre tekstfiler) som er lagret i UTF-8 og inneholder norske tegn blir i utgangspunktet ikke vist korrekt i DOS-vinduet (hvis man f.eks. bruker DOS-kommandoen type). Gjør følgende:

Utskrift med norske tegn fra Java i DOS-vinduet

Java-program kan kompileres fra DOS-vinduet med verktøyet javac og kjøres med verktøyet java. For å håndtere norske tegn i utskrift med println: