Java, DOS, Unicode, TextPad, æ, ø 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:

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 TextPad

TextPad kan settes opp til å bruke UTF-8 for Java-filer:

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 nå 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:

Kompilere og kjøre Java fra TextPad

TextPad kan settes opp med egne menyvalg for å kompilere og kjøre Java-program under DOS. Disse er synlige under meny Tools | External Tools, og kan evt. også gjøres tilgjengelige som knapper på menylinjen. Utskrift av norske tegn fungerer imidlertid ikke korrekt når Java kompileres/kjøres på denne måten.

For korrekt håndtering av norske tegn kan man lage sine egne kommandoer for å kjøre og kompilere:

Det ser ikke ut til å være mulig å gjøre tilsvarende endring av de "innebygde" Java-knappene i Textpad (de blir kjørt "direkte" og ikke startet som en DOS-kommando).