Avatar billede aitnemed Novice
23. maj 2007 - 13:38 Der er 4 kommentarer og
1 løsning

korrekt visning af danske bogstaver - indlæst fra xml-fil

Hej med jer

Jeg har efterhånden været rundt over hele internettet uden at kunne finde en løsning der virker og/eller som jeg helt forstår.

Jeg har lavet et program som indlæser et xml-regneark og viser visse data for brugeren.

Det der nu er tårnen i øjet på mig er, at hvis der står "Søren", "æskelund" eller "Ålborg", så bliver det "Søren" der bliver vist i stedet for "Søren" osv.

Jeg har prøvet at fortælle mit program at det skal bruge ISO-8859-1 under indlæsning af filen, men dette virker ikke.

Hvis jeg kører "System.out.println((int)line.charAt(i));" får jeg at vide, at "ø" har værdien 195... Hvis det er nogen hjælp.

Min kode hvor jeg indlæser filen ser sådan ud:


    public void getFileInput(File file) throws IOException{
        outputFileName = file.getAbsolutePath();
        nameOfFileLoaded = file.getName();

        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(outputFileName),
        "ISO-8859-1"));

        StringBuffer buf = new StringBuffer();
        String line = null;
        while ((line = in.readLine()) != null){
            buf.append(line + "\r\n");
            for (int i = 0; i < line.length(); i++) {
            }
           
        }

        fileTextInput = buf.toString() ;
        in.close();

    }
Avatar billede aitnemed Novice
23. maj 2007 - 13:40 #1
I kan se bort fra

"for (int i = 0; i < line.length(); i++) {
            }"

Det var den løkke jeg brugte til at printe charAt(i) med.
Avatar billede arne_v Ekspert
23. maj 2007 - 13:45 #2
altsaa dine danske bogstaver vises som UTF-8 fortolket som ISO-8859-1

jeg tror faktisk at din indlaesninger virker korrekt

det er din udskrivning/gem som er forkert og hvor du enten skal skrive ISO-8859-1
eller angive at det er UTF-8 naar det skal laeses
Avatar billede aitnemed Novice
23. maj 2007 - 13:53 #3
Hvis jeg laver en System.out.println() på den indlæste tekst streng der indeholder "Søren", så viser min konsol pt. "Søren".

Hvis indlæsningen foregår korrekt, hvad mangler jeg så at så at gøre, for at jeg i min konsol, i min gui - hvor jeg fylder tekststrengen med f.eks. "Søren" ind i en jLabel - og når jeg igen gemmer til xml-filen, får vist de danske bogstaver korrekt?
Avatar billede aitnemed Novice
23. maj 2007 - 22:14 #4
aaah, nu fattede jeg din besked. Det var jo ret let. Tusind tak for hjælpen.
Men for pædagogikkens skyld - skulle der en anden gang komme en knap så skarp kniv forbi som mig - vil jeg anbefale at du udpensler svaret lidt mere.

Dvs. skrive noget idiot-sikret noget ala: "Du skal bare erstatte der hvor der står "ISO-8859-1" med "UTF-8"."

:-D
Jeg takker for hjælpen igen.
Avatar billede arne_v Ekspert
24. maj 2007 - 04:03 #5
det var faktisk ikke helt mit forslag - jeg troede at det var output du skulle
angive UTF-8 på

jeg burd ehavde vist bedre da 'ø' i ISO-8859-1 ikke er 198 men derimod 248

men mulighederne er da heldigvis begrænsede - input skal vælge mellem ISO-8859-1 og UTF-8 og
output skal vælge mellem ISO-8859-1 og UTF-8 - det er kun 4 kombinations muligheder

:-)

jeg tillader mig at ligge et svar anyway
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