Avatar billede fiskesuppe Nybegynder
09. august 2002 - 20:24 Der er 22 kommentarer og
1 løsning

æøå i Java

Sidder lige og er i gang med at lære Java, men hvordan kan man skrive danske bogstaver (æ, ø, å) i Java?

I f.eks. dette eksempler ser å og æ ud på en helt forkert måde!

class StatsUnderskud {
  public static void main(String[] arguments) {
    int underskud = 446000000;
    underskud = underskud / 1440;
    System.out.println("På et minut stiger statsgælden med $" + underskud);
  }
}
Avatar billede codemon Nybegynder
09. august 2002 - 20:49 #1
Jeg gætter på at du compiler og kører i en dos prompt på PC.

Problemet er ikke java, men at dos og windows bruger forskelligt ASCII tegnsæt.

Hvis du skriver dit java program i edit fra dos (eller nøjes med at rette æøå deri) vil æøå blive vist ordentligt.
Avatar billede codemon Nybegynder
09. august 2002 - 20:55 #2
Men så bliver det bare ikke vist ordentligt hvis det vises i Windows
Avatar billede fiskesuppe Nybegynder
09. august 2002 - 21:00 #3
Ja jeg kører programmet i en DOS prompt på en PC. Det sidste forstår jeg dog ikke: Hvordan kan vise programmet i Windows i stedet for i en DOS prompt?
Avatar billede codemon Nybegynder
09. august 2002 - 21:01 #4
Du kan også give char variable ASCII værdierne for dos æøå. Prøv med

class StatsUnderskud {
  public static void main(String[] arguments) {
    char æ=0x91, ø=0x9B, 0x86, Æ=0x92, Ø=0x9D, Å=0x8F;
    int underskud = 446000000;
    underskud = underskud / 1440;
    System.out.println("P"+å+" et minut stiger statsg"+æ+"lden med $" + underskud);
  }
}

Jeg har ikke java installeret for øjeblikket så jeg kan ikke teste det.
Avatar billede codemon Nybegynder
09. august 2002 - 21:04 #5
Hvis du bruger ultraedit, JCreator eller mange andre. Kan du fange alt output fra skærmen, så det vises i et vindue efter programmet er afviklet.

Der mangler (selvfølgelig) å=0x86 i erkleringerne
Avatar billede fiskesuppe Nybegynder
09. august 2002 - 21:08 #6
Hvis jeg i JCreator vælger Build -> Execute file så åbner den bare programmet i en DOS Prompt.
Avatar billede codemon Nybegynder
09. august 2002 - 21:15 #7
Det kan du indstille i: build | runtime configuration - new - new, kryds af i "capture output"
Avatar billede fiskesuppe Nybegynder
09. august 2002 - 21:22 #8
okay kigger lige på det :)
Avatar billede djonez Nybegynder
05. april 2004 - 15:41 #9
Hvilken tegntabel bliver der kørt i DOS?
For jeg har prøvet adskillige uden resultat af ovenstående!

Nogen der kan hjælpe?
Avatar billede arne_v Ekspert
05. april 2004 - 16:29 #10
En lidt gammel tråd du har fundet !

:-)

DOS er normalt CP850, CP865 eller CP437.

Der er betydeligt bedre måder at løse det på end de konstanter.

-Dfile.encoding=CP850 er en mulighed.
Avatar billede djonez Nybegynder
05. april 2004 - 23:53 #11
Jeg er ikke med?
-Dfile.encoding=CP850 skal sættes ind hvor?
Jeg compiler i JDeveloper og kører i DOS.
Avatar billede arne_v Ekspert
05. april 2004 - 23:55 #12
Når du kører i DOS:

java -Dfile.encoding=CP850 DitProgram
Avatar billede djonez Nybegynder
06. april 2004 - 00:13 #13
Det er det samme. Der kommer sq ikke noget æ frem.
Avatar billede djonez Nybegynder
06. april 2004 - 00:20 #14
char æ = 0x91;
        System.out.println(æ);

  compiling C:\JDeveloper\jdev\mywork\src\Fjernmaaske.java
[00:14:48] Successful compilation: 0 errors, 0 warnings.

?
Process exited with exit code 0.

I DOS :

>javac Fjernmaaske.java
>java -Dfile.encoding=CP865 Fjernmaaske
?

>

Ja som du kan se er det ikke meg æ der kommer frem.
Avatar billede arne_v Ekspert
06. april 2004 - 00:22 #15
Prøv med æ='æ'
Avatar billede arne_v Ekspert
06. april 2004 - 00:23 #16
Eller bedre endnu drop de konstanter.

System.out.println("æblegrød");

[og altså med -Dfile.encoding=CP850 eller 886]
Avatar billede arne_v Ekspert
06. april 2004 - 00:23 #17
865 ikke 886
Avatar billede arne_v Ekspert
06. april 2004 - 00:25 #18
C:\>java DK
ãÏ┼µ°Õ

C:\>java -Dfile.encoding=CP850 DK
ÆØÅæøå
Avatar billede djonez Nybegynder
06. april 2004 - 00:27 #19
ja, det virkede. Både med 850 & 865
Men så skal man det foran filnavnet hver gang?
Det er jo lidt skod at skulle skrive det hver gang.
Især når man i DOS kører den cp kode.

C:\JDeveloper\jdev\mywork\src\>chcp
Aktiv tegntabel: 850

C:\JDeveloper\jdev\mywork\src\>
Avatar billede arne_v Ekspert
06. april 2004 - 00:34 #20
Normalt går man ike så meget op i ÆØÅ i console output - hvis et skal være
pænt laver man det i GUI eller print alligevel.

Men hvis du vil have ÆØÅ korrekt og du ikke orker at skrive den lille
define hver gang så kan du lave en:

System.setOut(new PrintStream(System.out, true, "CP850"));

i din kode.
Avatar billede arne_v Ekspert
06. april 2004 - 00:35 #21
Eller:

System.setProperty("file.encoding", "CP850");
Avatar billede arne_v Ekspert
06. april 2004 - 00:35 #22
[men klag ikke til mig når det ser forkert ud i console på linux ...]
Avatar billede djonez Nybegynder
06. april 2004 - 00:35 #23
Jeg siger mange tak.
Det er sq lige før jeg skulle opret. et spg. så du kan få nogle point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester