Avatar billede odsgaard Praktikant
07. september 2014 - 17:03 Der er 4 kommentarer og
1 løsning

Æ Ø Å problemer på mac

Hej Eksperter

Jeg har lavet et lille javaprogram, der indlæser nogle properties fra en fil ('config.properties'). Når programmet afvikles på en PC er der ingen problemer, men når programmet afvikles på en MAC, kan æ, ø og å ikke læses/vises rigtigt.

Når filen åbnes på MAC'en, så vises tegnene rigtigt, men når de så indlæses i javaprogrammet er de forkerte.

Jeg indlæser oplysningerne fra filen med
java.util.Properties
java.io.FileInputStream

Er der nogle gode forslag til en løsning?

Mit kendskab til MAC er omtrent ikke eksisterende, så ethvert forslag er velkommen.

På forhånd tak
Brian
Avatar billede arne_v Ekspert
07. september 2014 - 17:34 #1
Saa vidt jeg husker laeses properties altdi som ISO-8859-1 (ja - meget gammel kode).

Maaske kunne du proeve at konvertere filerne fra UTF-8 til ISO-8859-1.

Eller su kunne du bruge \uXXXX syntaxen til de danske bogstaver.
Avatar billede odsgaard Praktikant
07. september 2014 - 22:37 #2
Hej Arne

Tak for dit svar - det vil jeg prøve at arbejde videre med.

Smid lige et svar

Hilsen
Brian
Avatar billede arne_v Ekspert
08. september 2014 - 01:21 #3
Jeg huskede forkert. Der er en maade at angive charset paa!


package september;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Properties;

public class PropertiesFun {
    public static void main(String[] args) throws IOException {
        // do not work
        try(InputStream is = new FileInputStream("/work/dk_utf8.txt")) {
            Properties p = new Properties();
            p.load(is);
            System.out.println(p.get("dk"));
        }
        // do work
        try(InputStream is = new FileInputStream("/work/dk_iso88591.txt")) {
            Properties p = new Properties();
            p.load(is);
            System.out.println(p.get("dk"));
        }
        // do work
        try(InputStream is = new FileInputStream("/work/dk_utf8.txt")) {
            Reader r = new InputStreamReader(is, "UTF-8");
            Properties p = new Properties();
            p.load(r);
            System.out.println(p.get("dk"));
        }
        // do work
        try(InputStream is = new FileInputStream("/work/dk_iso88591.txt")) {
            Reader r = new InputStreamReader(is, "ISO-8859-1");
            Properties p = new Properties();
            p.load(r);
            System.out.println(p.get("dk"));
        }
    }
}
Avatar billede odsgaard Praktikant
08. september 2014 - 09:40 #4
Tak for dit eksempel Arne.

Smider du et svar :)
Avatar billede arne_v Ekspert
08. september 2014 - 14:56 #5
ups - det glemte jeg
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