Hallo!
Also ich habe Probleme bei byte´s und Strings unter Linux (unter Windows klappt alles).
Bsp.:
Ausgabe unter Windows:
Ausgabe unter Linux
Beides mal die JDK, bzw JRE 1.4
Das Problem ist das ich mit einem C++ Programm zusammenarbeite und ich die Daten per DatagramPacket hole!
Gucke ich mir den Inhalt an bevor es umgewandelt wird (in einen String) so habe ich die -60 etc (also die richtigen ANSI Werte).
Wandelt er es um, so steht nur noch Blödsinn drinnen (für jede Zahl das gleiche, das ist eigentlich das Hauptproblem, würde bei jeder etwas anderes stehn, wäre das ja schon mal ein Vorteil).
Unter Win funktioniert das alles tadellos, warum unter Linux nicht? Weiß das vielleicht jemand oder ob ich da was ändern muß?
Mfg
PS.: Wenn ich es auf byte Caste, so ist es statt 65533, -3 (unter Linux halt).
Also ich habe Probleme bei byte´s und Strings unter Linux (unter Windows klappt alles).
Bsp.:
Code:
byte b[] = {(byte)196,(byte)246,-60};
String str = new String(b);
System.out.println(str);
for(int x = 0; x != str.length(); x++)
System.out.print((int)str.charAt(x) + " == " + (char)str.charAt(x) + "\n");
Ausgabe unter Windows:
WindowsXP hat gesagt.:ÄöÄ
196 == Ä
246 == ö
196 == Ä
Ausgabe unter Linux
Linux hat gesagt.:???
65533 == ?
65533 == ?
65533 == ?
Beides mal die JDK, bzw JRE 1.4
Das Problem ist das ich mit einem C++ Programm zusammenarbeite und ich die Daten per DatagramPacket hole!
Gucke ich mir den Inhalt an bevor es umgewandelt wird (in einen String) so habe ich die -60 etc (also die richtigen ANSI Werte).
Wandelt er es um, so steht nur noch Blödsinn drinnen (für jede Zahl das gleiche, das ist eigentlich das Hauptproblem, würde bei jeder etwas anderes stehn, wäre das ja schon mal ein Vorteil).
Unter Win funktioniert das alles tadellos, warum unter Linux nicht? Weiß das vielleicht jemand oder ob ich da was ändern muß?
Mfg
PS.: Wenn ich es auf byte Caste, so ist es statt 65533, -3 (unter Linux halt).