9E2 Skrevet 1. februar 2012 Del Skrevet 1. februar 2012 (endret) Hei Forsøker meg litt på Java og tenkte å bruke String[] args i main-metoden for å lese argumenter fra kommandolinja. Problemet er at norske bokstaver og alle andre uvanlige tegn (æ, ǫ, π eller noe så lett som é) gjøres om til spørsmålstegn. Fant noen kodelinjer som lar meg skrive ut igjen argumentene, men det hjelper ikke så mye når poenget er å bruke dem. Jeg kjører: java Tull "søk etter jǫrð" Programkode: import java.io.PrintStream; import java.io.UnsupportedEncodingException; public class Tull { public static void main(String[] args) throws UnsupportedEncodingException { System.out.println(args[0]); PrintStream ut = new PrintStream(System.out, true, "UTF-8"); ut.println(args[0]); } } Programmet gir: s?k etter j?r? søk etter jǫrð Både terminalvinduet og fila bruker UTF-8. Jeg kan skrive System.out.println("æøå"); uten problemer, men det er altså det jeg leser inn som blir helt galt. Ser følgende løsninger, men aner ikke åssen jeg får det til: Få Java til å skjønne at det er UTF-8-tekst den leser fra terminalen Konvertere args[] fra UTF-8 til UTF-16 eller hva Java måtte finne på å bruke internt Få PrintStream til å sende teksten til en variabel som jeg kan bruke istedenfor å skrive teksten ut igjen i terminalvinduet Håper noen kan hjelpe meg med dette. Endret 2. februar 2012 av 9E2 Lenke til kommentar
Kiff Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Denne funket på min enkle testcase: private static String convert(String source, String fromEncoding, String toEncoding) throws UnsupportedEncodingException { return new String(source.getBytes(fromEncoding), toEncoding); } (merk at new String(byte[], encoding) kan gi uforutsette resultater dersom du bruker den på bytestream som ikke er komplett, f.eks ved innlesning fra fil) Lenke til kommentar
9E2 Skrevet 2. februar 2012 Forfatter Del Skrevet 2. februar 2012 Takker! Prøvde med noen ulike kodinger og fant til slutt riktig kombinasjon. Det viste seg å være avhengig av operativsystem og jeg fikk noen overraskende resultater, men til slutt ville det virke. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå