Sida 1 av 1

Teckenkodning, å ger Ã¥, vad ger å?

Postat: 12 dec 2010, 17:20
av TicToc
Sitter just nu i OS X och skriver ett javaprogram som anropar ett externt native-program, som även kommer att anropa motsvarande i linux och windows.
Argument med åäö blir lite knasiga, tex.
å Ã¥
ä ä
Ä Ã„

Jag tänkte mig en snabb och enkel lösning genom att ange något helt annat för att få ut åäöÅÄÖ, problemet är bara att trots googlande kammar jag noll.
Vad ger mig åäöÅÄÖ?

Re: Teckenkodning, å ger Ã¥, vad ger å?

Postat: 12 dec 2010, 17:25
av mcNisse
Troligtvis använder programmet enbytes teckenkoder. Testa att konvertera strängen till rätt kodning innan du skickar argumenten till programmet.

Re: Teckenkodning, å ger Ã¥, vad ger å?

Postat: 12 dec 2010, 17:31
av Konservburk
TicToc skrev:Argument med åäö blir lite knasiga, tex.
å Ã¥
ä ä
Så där ser UTF-8 ut i enkelteckenkodning.

Re: Teckenkodning, å ger Ã¥, vad ger å?

Postat: 13 dec 2010, 15:16
av TicToc
I går testade jag lite olika charset-konvertingar i java, det gav förändringar, men inte förbättringar.
När jag körde det på en windosmaskin idag blev allt bra. Jag har hela tiden kört från netbeans IDE, om nu det påverkar.

I min enfald trodde jag att bara jag har ett 'ö' så kan jag ange ett till-system, men jag antar att från-system också måste anges. Det finns mao inte några 'absoluta' tecken?
Jag får vika en dag eller två på julsemestern för att rada upp tre olika datorer/os och labba tills jag behärskar det.

Re: Teckenkodning, å ger Ã¥, vad ger å?

Postat: 13 dec 2010, 16:24
av mcNisse
Du måste kontrollera med OS-et (skalet?) vilken teckenkodning som änvänds och konvertera till det. Windows änvander ofta någon cp-kodning (code page) som är kompatibel med latin-1 om man kör programmet i Sverige. Linux-system använder oftast utf-8. osX har jag ingen aning om.

Här är en snutt som jag hittade som borde hjälpa till att hitta vilken kodning du ska skicka argumenten som.

Kod: Markera allt

// in JDK 1.5+, will typically be "windows-1252"
// First, get the Charset/encoding then convert to String.
String defaultEncodingName = Charset.defaultCharset().name();

Re: Teckenkodning, å ger Ã¥, vad ger å?

Postat: 13 dec 2010, 23:10
av TicToc
mcNisse skrev: Här är en snutt som jag hittade som borde hjälpa till att hitta vilken kodning du ska skicka argumenten som.
Tack för tipset,
testade

Kod: Markera allt

    public static void main(String[] args) {
        String defaultEncodingName = Charset.defaultCharset().name();
        System.out.println(defaultEncodingName);
    }
Kör jag programmet från NetBeans IDE på Mac får jag "UTF-8", startar jag samma program via skalet blir det "MacRoman".
Det fungerar bra att sätta egenskapen före programstart, -Dfile.encoding=UTF-8

Många ändar på detta spett. :)

Har inte gjort det riktiga testet ännu då målhårdvaran inte är åtkomlig.