27. februar 2003 - 20:42
Der er
47 kommentarer og 2 løsninger
ANSI karaktere...
Hvordan bruger jeg ANSI karaktere midt i en tekststreng? f.eks.: System.out.println("Server venter på klient på port " + server_socket.getLocalPort()); (Den kender naturligvis ikke mine "å"'er...)
Annonceindlæg fra Academic Work Denmark A/S
27. februar 2003 - 20:46
#1
Den burde skrive å fint ud ifølge det karakter sæt java bruger. Snakker vi om en DOS box på en Windows maskine ?
27. februar 2003 - 20:48
#2
Hvis det er tilfældet så prøv med: java -Dfile.encoding=Cp850 navnet-på-din-klasse
27. februar 2003 - 20:53
#3
det er dos-promt-baseret på en windows maskine...
27. februar 2003 - 20:56
#4
Så prøv med -Dfile.encoding=Cp850 !
27. februar 2003 - 20:57
#5
Har du sat options til Dansk i "Control panel" -> "Regional and Language Options" (winxp..) ? Hvis det er på en win9x maskine skal du muligvis loade en codepage (850 eller 865) via config.sys og autoexec.bat.
27. februar 2003 - 21:07
#6
det er en xp maskine, og jeg har de rigtige indstillinger i kontrolpaneler (har lige kigget). didn't work... hvad går dit: java -Dfile.encoding=Cp850 tcpServer.java ting ud på?
27. februar 2003 - 21:09
#7
Det fortæller Java at den skal bruge DOS karakter-sæt.
27. februar 2003 - 21:09
#8
Det plejer at løse problemet.
27. februar 2003 - 21:11
#9
Jeg har lige prøvet med: public class Main { public static void main(String args[]) { System.out.println("æÆøØåÅ"); } } Garbage med: java Main Korrekt visning med: java -Dfile.encoding=Cp850 Main
27. februar 2003 - 21:30
#10
det virker også når jeg skriver i dos'en, men det virker ikke med det tekst der står "hard-kodet" gennem min system.out.println()... det står stadig "õ" for mine "å"'er...! :(
27. februar 2003 - 21:47
#11
Hvis du prøver med f.eks. Sørens lille program - er alle 6 tegn så forkerte eller ?
27. februar 2003 - 21:54
#12
ja... men kan det have noget at gøre med at jeg har 2 java versioner indstalleret? både 1.3.1_01 og 1.4??
27. februar 2003 - 21:57
#13
Hvis du prøver følgende: java -version Kan du se hvilke version du bruger til at køre programmet fra. Hos mig er output: D:\$temp\download>java -version java version "1.4.1_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01) Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
27. februar 2003 - 21:59
#14
Hvilken editor bruger du til at skrive koden med ? Jeg tror faktisk at det er ret ens for både 1.3.1 og 1.4.1 på Windows (jeg har hørt at de ændrede noget i 1.4.1 på Linux, men ...).
27. februar 2003 - 22:00
#15
hmm weird... 'Java'
27. februar 2003 - 22:00
#16
ups...
27. februar 2003 - 22:03
#17
jeg installerede lige min 1.3.1 pakke igen på maskinen, og nu virker det lidt bedre, men den skriver stadig õ for mine å'er... den dér: java -Dfile.encoding=Cp850 tcpServer bruges kun til at afvikle filen gennem en formatering, ik'? det ser sgu ikke ud til at virke...
27. februar 2003 - 22:04
#18
jeg bruger TextPad 4.6.2
27. februar 2003 - 22:05
#19
Hvordan ser dine ÆØÅ ud i standard Notepad ?
27. februar 2003 - 22:06
#20
Og hvad er forskellen præcis på 1.4 og 1.3.1 ?
27. februar 2003 - 22:09
#21
de ser sgu fine ud... ingen problemer... jeg kender ikke forskellen mellem de to, men da jeg skulle reinstallere min maskine, kunne jeg ligesåp godt bruge den nyeste version... dog fandt jeg nogle fejl, så jeg installerede den gamle oveni, men det kan godt være at den har lavet ravage et sted... derfor fjernede jeg begge, genstartede, og installerede igen 1.3.1_01 versionen...
27. februar 2003 - 22:12
#22
Du skrev "jeg installerede lige min 1.3.1 pakke igen på maskinen, og nu virker det lidt bedre". Før var alle 6 tegn forkerte. Når du skriver lidt bedre formoder jeg at der er nogen der er korrekte. Har jeg forstået det rigtigt ? Og hvis ja - hvilke er forkerte og hvilke er rigtige ?
27. februar 2003 - 22:14
#23
før da jeg skrev java -version eller bare et eller andet med java i min promt, kom den med en fejlmeddelelse... nu viser den versionsnummer som den skal... deri ligger forskellen...!
27. februar 2003 - 22:16
#24
Så alle 6 tegn er stadig forkerte selvom de ser rigtige ud notepad ?
27. februar 2003 - 22:18
#25
korrekt!
27. februar 2003 - 22:20
#26
Og de er helt ens med og uden -Dfile.encoding=Cp850 ?
27. februar 2003 - 22:21
#27
korrekt!
27. februar 2003 - 22:30
#28
Meget mystisk. lille å er lille o med tilde over hvad er de andre 5 ?
27. februar 2003 - 22:30
#29
jeg kan heller ikke få det til at virke på min maskine selvom jeg bruger System.setProperty("file.encoding","Cp850"); hvilket i grunden er mystisk.
27. februar 2003 - 22:31
#30
mu (græsk m) for æ og gradtegn for ø
27. februar 2003 - 22:36
#31
Hvad skriver dette program: public class Main { public static void main(String args[]) { System.out.println(System.getProperty("file.encoding")); System.out.println("æÆøØåÅ"); } } ud med og uden -Dfile.encoding=Cp850 ?
27. februar 2003 - 22:38
#32
Og hvad er output fra: java -version ?
27. februar 2003 - 22:38
#33
maddog siden du kan genskabe problemet må du også meget gerne svare.
27. februar 2003 - 22:40
#34
java version "1.3.1_01" bla bla
27. februar 2003 - 22:41
#35
det hjælper heller ikke.. det tilføjer bare en linie i starten med "CP1252"
27. februar 2003 - 22:42
#36
Ja - forhåbentligt kun uden -Dfile.encoding=Cp850 ! Med skulle den gerne skrive Cp850 !! Ikke ?
27. februar 2003 - 22:48
#37
når jeg kører den gennem java D-file.encoding=Cp850 Main bla bla, skriver den Cp850 i første linie, og de næste 6 mærkelige tegn i næste linie...
27. februar 2003 - 22:51
#38
Vi er 100% enige arne_v. Det BURDE virke. I mit tilfælde kan jeg ikke rigtig svare for hvad der går galt. Det nedstående program giver følgende output Cp1252 Cp1252 Cp850 mu-grad-õ mu-grad-õ Hvorfor må guderne vide. Jeg er på en Win98UK maskine. import java.io.*; public class CharsetTest { public static void main(String[] args) { System.out.println(System.getProperty("file.encoding")); System.out.println(System.setProperty("file.encoding","Cp850")); System.out.println(System.getProperty("file.encoding")); System.out.println("æøå"); OutputStreamWriter osw; try { osw = new OutputStreamWriter(System.out, "ISO-8859-1"); } catch (java.io.UnsupportedEncodingException ue) { System.err.println(ue.getMessage()); return; } try { osw.write("æøå"+'\n'); } catch (java.io.IOException ie) { System.out.println(ie.getMessage()); } finally { try { osw.flush(); osw.close(); } catch (java.io.IOException ie) { System.out.println(ie.getMessage()); } } } }
27. februar 2003 - 22:53
#39
så er det ikke bare mig der er skør? :)
27. februar 2003 - 22:54
#40
maddog> Hvad får du med: osw = new OutputStreamWriter(System.out, "Cp850"); ?
27. februar 2003 - 22:56
#41
det ser sgu ud til at hjælpepå det...
27. februar 2003 - 22:56
#42
ferdinand> Vi er helt klar over at problemet er reelt nok. Vi har bare meget svært ved at finde en løsning, fordi problemet på mystisk vis kan løses med -Dfile.encoding på min og Sørens PC men ikke på din og maddog's.
27. februar 2003 - 22:56
#43
DET VIRKER. import java.io.*; public class CharsetTest { public static void main(String[] args) { OutputStreamWriter osw; try { osw = new OutputStreamWriter(System.out, "Cp850"); } catch (java.io.UnsupportedEncodingException ue) { System.err.println(ue.getMessage()); return; } try { osw.write("æøå"+'\n'); } catch (java.io.IOException ie) { System.out.println(ie.getMessage()); } finally { try { osw.flush(); osw.close(); } catch (java.io.IOException ie) { System.out.println(ie.getMessage()); } } } } giver æøå GULD. Fanden man ikke kan ligge 2 og 2 sammen selv
27. februar 2003 - 22:57
#44
min udskriver således: Cp1252 Cp1252 Cp850 uoÕ æøå
27. februar 2003 - 22:59
#45
Godt. Så har I da en måde at få skrevet ÆØÅ ud på. Men jeg undrer mig stadigvæk over at det andet virker på 2 PC'ere men ikke på 2 andre. Jeg hader når jeg ikke forstår logikken i noget.
27. februar 2003 - 23:01
#46
arne_v: Me too. Grunden til at programmering er min hobby i stedet for stramaj er at computere ved man hvor man har. Hvis de fejler er det din egen skyld. Dette er en irriterende undtagelse. Skal vi dele de 15 point...
27. februar 2003 - 23:05
#47
det synes jeg lyder som en forrygende ide.. i har sgu gjort et fremragende stykke arbejde... :)
27. februar 2003 - 23:09
#48
ferdinand> Jeg ville lave en lille statisk klasse til at styre udskrivningen hvis jeg var. Rent faktisk tror jeg at jeg gør det selv lige nu, for min fornemmer siger mig at jeg får brug for det. Jeg poster den i denne tråd og lidt tid når jeg er færdig. Jeg fatter det stadig ikke. System.out burde i realiteten samle alting i et batch job og skrive det ud med en OutputStreamWriter med den i properties angivne encoding. Nåmen. Det er nok ikke alting man kan (eller skal) forstå.
27. februar 2003 - 23:39
#49
import java.io.*; public class CharsetTest { public static void main(String[] args) { EncodedOutput.println("æøå"); EncodedOutput.close(); } } class EncodedOutput { private static EncodedOutput wrapper; private static OutputStreamWriter osw = null; private static String charset; public static void open(String cs) { charset = cs; wrapper = new EncodedOutput(cs); } public static void open() { charset = "Cp850"; open(charset); } public static void print(String input) { if (wrapper==null) open(); try { osw.write(input); } catch (java.io.IOException ie) { ie.fillInStackTrace(); } } public static void println(String input) { print(input+'\n'); } public static void close() { try { osw.flush(); osw.close(); } catch (java.io.IOException ie) { ie.fillInStackTrace(); } } private EncodedOutput(String cs) { try { osw = new OutputStreamWriter(System.out, cs); } catch (java.io.UnsupportedEncodingException ue) { ue.fillInStackTrace(); } } } Håber du kan bruge den til noget Husk at lukke efter dig (noget System kan gøre automatisk, men vi ikke kan)
Kurser inden for grundlæggende programmering