Binärdaten verarbeiten
-
Hallo,
ich habe hier eine Datei, in der gemischt binärdaten sowie Text-informationen stehen, die in ASCII enkodiert ist. Weil ich diese Textinformationen im Programmcode verarbeiten muss, wäre es praktisch meine Daten (liegen in einem byte Array) in einen String zu portieren.
Das mache ich mit: String sData = new String( bData );
Jetzt wurde das alles aber in ein anderes Character-Encoding(utf-8/-16) konvertiert, so dass ich mit den Binärdaten nichts mehr anfangen kann.
mit getBytes( String ) kann ich bei der Zurück-Konvertierung ein Charset angeben. Intuitiv habe ich ISO-8859-1 sowie ASCII verwendet, was aber meine ganzen Sonderzeichen zu '?' umwandelt.
Ich bin momentan etwas Ratlos, hatte einer von euch evtl schon ein ähnliches Problem oder kennt eine Lösung?
Vielen Dank im voraus.
mfg jghj
-
gib beim erstellen des strings auch das encoding an
http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html#String(byte[], java.lang.String)
-
Ich würde ja die ganze Sache mit java.io.DataInputStream angehen und die Bytefolge mit den einzelnen read-Methoden auseinandernehmen.
-
@öllampe
Das hab ich schon probiert, aber da müsste man auch wissen was fürn encoding man nehmen sollte. Naheliegend wäre ascii, jedoch ist da eben das Java-Problem, dass der sehr viele Zeichen in '?' umwandelt. Und ein Encoding, das "BINARY" heißt oder so hab ich bisher leider nicht gefunden@Varus
so werde ichs machen, wenn ich keine andere Möglichkeit finde. Aber ich hab mit dem Problem anfangs nicht gerechnet und hab nun den Parser mit Hilfe von split() usw. geschrieben. D.h. ich müsste den Parser neu schreibendanke auf jeden Fall für eure Hilfe.
Wer noch ne Idee hat, bitte melden
mfg jghj
-
na du must halt das geleiche encoding wie bei getBytes angeben. Vlt auch beim In/OutputStream.
-
Ja es gibt halt kein richtiges Encoding was Rohdaten richtig handlet.
Egal ich hangel mich jetzt mein bytearray