byte.toString() -> Datenmüll

Status
Nicht offen für weitere Antworten.

jansen

Mitglied
so da bin ich wieder
also:
du hast schon recht, dass man SOH als \u0001, \x01 und 1 ausdrücken kann

aber man erkennt dies nicht im string:
BSP:
Java:
String einkomprimierterString = new String("\x01 ist ein Steuerzeichen, ebenso wie \x02");
//Ausgabe des Strings würde folgendes ergeben:
[] ist ein Steuerzeichen, ebenso wie []
//[] ist dieses komische Quadrat, welches immer dann auftaucht, wenn ein Zeichen nicht dargestellt werden kann

man kann hinterher nicht mehr feststellen, welcher byte[]-Code hinter den "[]" steckt, da die Auswertung später über den reinen String passiert (ich hoffe das ist einiger Maßen verständlich, wenn nicht dann sofort meckern:) )

Meine Überlegung:

nach dem im komprimierten byte[] nur positive Zahlen(ist mir schon geglückt) von 0 bis 255 drinne stehen, werden die elemente des byte[] herausgesucht, die als steuerzeich interprtiert werden

d.h:

bsp: byte[] kompriBytes : 65 65 1 66 //diese werte stehen im byte
in einen String gepackt müsste es das hier ergeben:
"AA[]B"

[] wäre aber eigentlich SOH

also, sage ich:
an stelle aller steuerzeichen, die im string auftreten, packe ich eine kombination aus 2 verfügbaren zeichen rein

darausfolgt:

NUL entspricht ^!
SON enspricht ^#
.
.
.
DEL entspricht ^B
^ entspricht dann ^^

so sind zwar statt einem zeichen zwei enthalten, aber den obulus gehe ich ein

also sähe der String aus dem beispiel wie folgt aus:

"AA^#B"

beim empfänger weiß ich dann:

byte[] komprimierteb={byte(A),byte(A),byte(SOH),byte(B)}

was hältst du davon?
Habe ich eventuell etwas übersehen?
 
Zuletzt bearbeitet:

Ark

Top Contributor
aber man erkennt dies nicht im string:
BSP:
Java:
String einkomprimierterString = new String("\x01 ist ein Steuerzeichen, ebenso wie \x02");
//Ausgabe des Strings würde folgendes ergeben:
[] ist ein Steuerzeichen, ebenso wie []
//[] ist dieses komische Quadrat, welches immer dann auftaucht, wenn ein Zeichen nicht dargestellt werden kann

man kann hinterher nicht mehr feststellen, welcher byte[]-Code hinter den "[]" steckt, da die Auswertung später über den reinen String passiert (ich hoffe das ist einiger Maßen verständlich, wenn nicht dann sofort meckern:) )
Es klingt seltsam, sehr seltsam. ;)

Erfolgt die Auswertung von Menschen, die die Glyphen entziffern müssen? Ich denke nämlich nicht! Nur weil die Zeichen nicht vernünftig angezeigt werden, heißt das nicht, dass sie nicht korrekt gespeichert wären.

Mal zur Verdeutlichung:
Java:
// eine Maschine erzeugt einen String mit allen ASCII-Zeichen:
StringBuilder sb=new StringBuilder(128);
for(int i=0;i<128;i++){
	sb.append((char)i);
}
String alleASCII = sb.toString();
Wenn du dir das ausgeben lässt, sieht es vielleicht nach Müll aus, aber es ist nach wie vor alles korrekt gespeichert:
Java:
// alleASCII ist der String von eben
for(int i=0;i<alleASCII.length();i++){
	System.out.println((int)alleASCII.charAt(i));
}
Wie du vielleicht siehst: Innerhalb von Java sind Steuerzeichen in Strings kein Problem. (Mit anderen Unicode-Zeichen geht es genauso.) Warum also willst du Escape-Sequenzen drumherum bauen? Diese Escape-Sequenzen sind doch nur dazu da, um in einem Quelltext wie einem Java-Quelltext diese Zeichen eingeben zu können, ohne dass der Compiler auf Probleme stößt oder meckert. Im laufenden Programm ist es vollkommen egal, wie die Zeichen da reingekommen sind: ein SOH ist ein SOH, und wie es kodiert wird, steht auf einem völlig anderen Blatt (sprich: ist dann nicht mehr relevant).

[] wäre aber eigentlich SOH
Es wäre eines und es ist auch eines! Es sieht zwar doof auf dem Bildschirm aus, aber intern ist SOH gespeichert.

was hältst du davon?
Habe ich eventuell etwas übersehen?
Ja: Der Aufwand ist schlicht nicht nötig, es sei denn, dieser QR-Code hat wirklich Probleme mit Steuerzeichen.

Bist du dir immer noch sicher, dass Steuerzeichen wirklich ein Problem sind? Hast du schon einmal eine Verarbeitung von Anfang bis Ende vorgenommen, ohne dich von seltsam anmutenden Bildschirmausgaben verwirren zu lassen?

Ark
 

jansen

Mitglied
kurze antwort: ja , ich habe schon einmal einen string QRcodieren lassen, in dem nichts lesbares steht.
der algorithmus konnte damit nicht umgehen, da er sich die zeichen aus dem string nimmt und nicht etwa die bytes.

du weißt doch auch gar nicht wie der algo funktioniert- deswegen sehe ich auch deine argumentation nicht ein.

am ende hast du eh immer was zu meckern
wenn das jetzt hier klappt dann bin ich zu frieden

egal wie man zum ziel kommt, es gibt ja viele wege
der eleganteste ist mein weg nicht das gebe ich zu
vielleicht zu kompliziert- das gebe ich auch zu

aber mehr zeit um über diese sache nachzudenken habe ich nicht, obwohl ich das gerne würde!

auf jeden fall danke ich dir für deine denkanstöße, ark!
ohne deine hinterfragungen wäre ich wahrscheinlich nicht zu diesem resultat gekommen

zu deiner aussage: soh ist ein soh, und wie es kodiert wird, steht auf einem völlig anderen Blatt
das ist richtig
ich möchte nur nicht das in dem string steuerzeichen stehen - is einfach ne schlichte vorgabe vom arbeitgeber :p

bis denne antenne

ich werde denk ich mal noch ne abschlussbemerkung schreiben wenn das hier alles gelaufen ist

tschuss
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
T IOStreams read(byte[]b) methode Java Basics - Anfänger-Themen 2
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
G ImageIcon in Byte-Array ablegen Java Basics - Anfänger-Themen 7
D Best Practice Parameter int vs byte Java Basics - Anfänger-Themen 16
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
N Datentypen Image zu Byte-Array Java Basics - Anfänger-Themen 4
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
F byte, short oder doch int? Java Basics - Anfänger-Themen 6
S Performance von byte[], short[], int[]..? Java Basics - Anfänger-Themen 24
D Methoden int to byte array und zurück? Java Basics - Anfänger-Themen 5
P int zu byte Java Basics - Anfänger-Themen 8
F Byte Array wachsen lassen Java Basics - Anfänger-Themen 5
M Java Klasse Byte Java Basics - Anfänger-Themen 10
F Byte Ausgabe plötzlich falsch Java Basics - Anfänger-Themen 0
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
O Input/Output Ein (negatives) Byte über PrintWriter hinausschreiben Java Basics - Anfänger-Themen 3
T byte[] zu String mit Sonderzeichen Java Basics - Anfänger-Themen 2
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
J byte - Ausgabe Java Basics - Anfänger-Themen 2
F Teil eines Byte Array an eine Methode übergeben Java Basics - Anfänger-Themen 5
S byte to float Java Basics - Anfänger-Themen 4
J Byte Folge erkennen Java Basics - Anfänger-Themen 5
M sehr großes Byte Array Java Basics - Anfänger-Themen 3
M Byte Array und Co. Java Basics - Anfänger-Themen 12
T Operatoren Float in byte umwandeln Java Basics - Anfänger-Themen 3
Y File to byte[] and byte[] to sysout Java Basics - Anfänger-Themen 3
P Wann Byte-Stream und wann Character-Stream? Java Basics - Anfänger-Themen 11
F Hexfolge in Byte Array ersetzen Java Basics - Anfänger-Themen 8
P String in byte konvertieren, wie? Java Basics - Anfänger-Themen 4
T Erste Schritte Byte Java Basics - Anfänger-Themen 3
R byte[] zu String und Ausgabe Java Basics - Anfänger-Themen 2
H Variablen short <-> byte[] Java Basics - Anfänger-Themen 15
X Datentypen String in byte[] Java Basics - Anfänger-Themen 29
H Variablen 32bit Zählwert als Byte-Array Java Basics - Anfänger-Themen 9
H Variablen string nach byte Java Basics - Anfänger-Themen 12
B Frage zur Effizienz von read und read(byte[]) Java Basics - Anfänger-Themen 23
R Erste Schritte Rechnenoperationen mit byte, short und char Java Basics - Anfänger-Themen 8
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
L Byte[] to String, doch bits sind gespiegelt (MSB/LSB) Java Basics - Anfänger-Themen 3
S Von byte[] nach String zurueck nach byte[]. Arrays sind nicht identisch :( Java Basics - Anfänger-Themen 6
S ArrayList<Byte> in String umwandeln Java Basics - Anfänger-Themen 5
V unsigned byte? Java Basics - Anfänger-Themen 27
M byte Array Mindestlänge Java Basics - Anfänger-Themen 19
U short[] nach byte[] Java Basics - Anfänger-Themen 11
D [jni] jbytearray <-> byte array Java Basics - Anfänger-Themen 8
S Datentypen Ändern eines byte[] Arrays Java Basics - Anfänger-Themen 4
B byte-weise Verschlüsselung Java Basics - Anfänger-Themen 6
P byte Array aus ImageIcon Java Basics - Anfänger-Themen 10
S Input/Output String in byte umwandeln? Java Basics - Anfänger-Themen 5
F von Byte zu 2 Stellig Hex Java Basics - Anfänger-Themen 3
G byte[] (Base64) korrekt übergeben Java Basics - Anfänger-Themen 4
V Jar-Datei von Byte-Array oder Stream laden? Java Basics - Anfänger-Themen 9
O 64bit- OS byte, short, int oder long bzw. float oder double? Java Basics - Anfänger-Themen 13
G Binär in Byte speichern Java Basics - Anfänger-Themen 7
T Datentypen byte -Division..mal gehts mit cast mal ohne Java Basics - Anfänger-Themen 5
T Datentypen default ist int, cast zu byte nötig... Java Basics - Anfänger-Themen 2
F Byte nach Zahl umwandeln Java Basics - Anfänger-Themen 11
E Datentypen type cast problem (int, byte,) Java Basics - Anfänger-Themen 5
T Datentypen unsigned byte? Java Basics - Anfänger-Themen 9
G Integar zu Byte Java Basics - Anfänger-Themen 4
P Byte mit 0...255? Java Basics - Anfänger-Themen 5
N Datentypen Fehler beim Umwandeln in byte Java Basics - Anfänger-Themen 3
L Umwandlung int <--> byte Java Basics - Anfänger-Themen 2
L Datentypen 250 und byte? Java Basics - Anfänger-Themen 4
L Datentypen byte[] in String und wieder zurück Java Basics - Anfänger-Themen 3
H Datentypen Byte-Array RSA Java Basics - Anfänger-Themen 9
H Datentypen Rechnen mit signed Byte-Array - unsinged byte Java Basics - Anfänger-Themen 3
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
V Byte -> String -> Byte verlustfrei Java Basics - Anfänger-Themen 12
Hindi93 Byte to Int Java Basics - Anfänger-Themen 4
H Datentypen byte[] to int Java Basics - Anfänger-Themen 9
S hex zu byte Java Basics - Anfänger-Themen 4
M Byte Array: Werte größer 127? Java Basics - Anfänger-Themen 11
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
H 1 Byte Status Variable Java Basics - Anfänger-Themen 3
P Datentypen Byte und char Typecast Java Basics - Anfänger-Themen 2
M Bit/Byte Operationen Java Java Basics - Anfänger-Themen 8
W Datentypen int -> byte Java Basics - Anfänger-Themen 2
H Datentypen Byte-Array aus Stream lesen Java Basics - Anfänger-Themen 3
F Typenumwandlung byte <=> int verstehen Java Basics - Anfänger-Themen 3
S Byte eines arrays Java Basics - Anfänger-Themen 17
N Frage zu Datentyp byte Java Basics - Anfänger-Themen 14
B unsigned byte Problem Java Basics - Anfänger-Themen 9
S 2 Byte Arrays addieren Java Basics - Anfänger-Themen 45
S Unbekannte Daten einlesen, speichern und in einem byte Array speichern Java Basics - Anfänger-Themen 3
S Alle Datentypen in byte Array und zurückwandeln Java Basics - Anfänger-Themen 2
H Frage zu Byte-Streams Java Basics - Anfänger-Themen 2
Z Wie Byte[] in einen String oder int konvertieren Java Basics - Anfänger-Themen 2
0 byte[] -> hex Java Basics - Anfänger-Themen 2
G char[] in byte[] konvertieren? Java Basics - Anfänger-Themen 2
V Byte Arrays in Strings umwandeln und splitten Java Basics - Anfänger-Themen 2
M unsigned byte Java Basics - Anfänger-Themen 4
F Byte 0 und 1 einzelnd zuweisen? Java Basics - Anfänger-Themen 17
G byte [] aus uRL erhalten Java Basics - Anfänger-Themen 11
J Byte-Array als Hex-Datei speichern? Java Basics - Anfänger-Themen 9
G Hex to Byte Java Basics - Anfänger-Themen 13
S Byte in Zahl umwandeln Java Basics - Anfänger-Themen 3

Ähnliche Java Themen


Oben