Avatar billede kridley Nybegynder
01. april 2004 - 16:43 Der er 6 kommentarer

Unicode problem?

Hej eksperter,

Jeg læser noget tekst ind fra en fil. Denne fil indeholder 'æ' 'ø' og 'å'. Nå jeg får min String tilbage fra denne læsning er unicoden blevet tilført en backslash og skrives ud som hextal istedet for de rigtige karakterer.

Koden er som følger:

String str = null;
       
is = coordinator.getClass().getResourceAsStream(path);
       
try {
    InputStreamReader r = new InputStreamReader(is);
    StringBuffer sb = new StringBuffer();
    char[] buffer = new char[32];
    int count;

while ( ( count = r.read (buffer, 0, buffer.length) ) > -1) {
        sb.append(buffer, 0, count);
}
        str = sb.toString();
        } catch ( IOException e ) {
throw new UtillityException(UtillityException.ERROR_READING_FROM_FILE);
        }
Avatar billede arne_v Ekspert
01. april 2004 - 16:46 #1
Jeg er ret sikker på at det ikke går galt i den viste kode.
Avatar billede kridley Nybegynder
01. april 2004 - 17:08 #2
OK, det var en interessant betragtning. Men den viser altså hextallet og IKKE mit 'ø'!
For øvrigt programmerer jeg i J2ME...
Avatar billede Slettet bruger
01. april 2004 - 20:45 #3
Jeg tror at man skal bruge UTF-8. Hvordan har du skrevet din fil?

Prøv at lave den med noget lignende...

PrintWriter out =
            new PrintWriter(
                new OutputStreamWriter(
                    new FileOutputStream("filename.txt"),
                    "UTF-8"));
Avatar billede kridley Nybegynder
01. april 2004 - 22:11 #4
Min fil er en ressource-fil der skal indeholde tekster på forskellige sprog. Jeg kan kun bruge de klasser der hører til J2ME - MIDP 1.0, og der er hverken PrintWriter eller FileOutputStream.
Avatar billede Slettet bruger
01. april 2004 - 23:07 #5
Du har ret i at du kun kan bruge klasser, der hører til J2ME til at LÆSE din fil. Men hvordan SKREV du oprindeligt filen? Undersøg om filen er i UTF-8 encoding. Hvis ikke, så skriv den igen med UTF-8 og prøv om det ikke løser dit problem.
Avatar billede Slettet bruger
02. april 2004 - 15:53 #6
du kan sætte en encoding på din reader
InputStreamReader r = new InputStreamReader(is,"iso-8859-1");
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