Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich habe eine Problem ein Byte-Array zu einem String zu machen und wieder zurück.
Die Byte-Arrays sind dann zwar gleich lang aber der Inhalt stimmt nicht mehr.
Ich habe auch versucht bei dem new String und getBytes den charset auf "utf-8" zusetzen aber dann stimmt nicht einmal mehr die Länge der Byte-Arrays.
Java:
// bild in String
BufferedImage imageReader = ImageIO.read(bild);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(imageReader, "jpg", out);
byte[] data = out.toByteArray();
//Hier ist der String
String strData = new String(data);
//String in bild
byte[] neuData=strData.getBytes();
System.out.println(data.length + " " + neuData.length+" "+data.equals(neuData));//gibt false aus
Einen byte[]-Array als String zu speichern führt praktisch immer zu solchen Encoding-Problemen (insbesondere wenn der Array beliebige Daten (und eben nicht nur "printable ASCII-characters") enthält.
mal so am rande ne GANZ DUMME frage : WARUM zur hölle willst du n byte-array in einen string umwandeln ?=!
und WENN ... dann mach es mit Base64 oder nem Hex-String *bitte google selbst wie man ein byte-array in einen hex-string und umgekehrt umwandelt*
aber wie bereits erwähnt : in der regel macht man so einen blödsinn nicht wegen encoding-problemen ...
// bild in String
BufferedImage imageReader = ImageIO.read(bild);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(imageReader, "jpg", out);
byte[] data = out.toByteArray();
//Hier ist der String
String strData = new BASE64Encoder().encode( data );
//String in bild
byte[] neuData = new BASE64Decoder().decodeBuffer( strData );
java.awt.Toolkit t = java.awt.Toolkit.getDefaultToolkit();
Image img = t.createImage(neuData);
g.setImage(img);
Wenn hier jemand eine Frage stellt, will er i.a. nicht, dass die Frage hinterfragt wird, aber...: Das macht so nicht viel (bis gar keinen) Sinn. Sofern du nicht GANZ genau weißt, was du da tust (und warum) nochmal der Tipp: Lass' es...
Ach, AmunRa, sei doch nicht so schwer von Begriff :noe: Er will es natürlich in einen String umwandeln, weil er das Bild als String haben will. So schwer ist es doch nicht :noe: