Tôi có một servlet đã thay đổi kích thước và mã hóa hình ảnh thành base64. Tôi mã hóa nó như thế nàyXử lý sự cố trả về vận chuyển Base64 từ Java và gửi tới trình duyệt
BufferedImage newBuf = .. a bufferedImage...
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, sImgFormat, baos);
baos.flush();
imageInBytes = baos.toByteArray();
sau đó tôi mã hóa này vào base64 để gửi cho trình duyệt như thế này
sun.misc.BASE64Encoder encoder = new BASE64Encoder();
String sEncImage = "data:image/jpg;base64," + encoder.encodeBuffer(imageInBytes);
Trình duyệt sẽ nhận được mã hóa và nó hoạt động trừ các kí tự xuống dòng, ("\ n ") được nhúng một cách nhất quán trong chuỗi làm hỏng hình ảnh. Khi tôi gỡ bỏ các vận chuyển trả về hình ảnh là tốt. Có cách nào để tạo ra các mã hóa mà không có sự trả về vận chuyển. Hay tôi phải lọc nó ra trước khi gửi lại?
(Tôi đang sử dụng J2SE 1.4.2 và cần phải tiếp tục làm như vậy)
Tại sao không gửi luồng byte? – Alanmars
Tôi cần gửi văn bản base64 tới trình duyệt. HTML5 ở đầu bên kia – giulio
\ n không phải là ký tự trả về dòng, nó là một nguồn cấp dữ liệu dòng. \ r là vận chuyển trở lại. https://stackoverflow.com/questions/3091524/what-are-carriage-return-linefeed-and-form-feed – Achille