Java: Encode String in quoted-printable
jakarta-mail, java, mime, quoted-printable
Solution
To use this `MimeUtility` method you have to create a `ByteArrayOutputStream` which will accumulate the bytes written to it, which you can then recover. For example, to encode the string `original`:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream encodedOut = MimeUtility.encode(baos, "quoted-printable");
encodedOut.write(original.getBytes());
String encoded = baos.toString();
The `encodeText` function from the same class will work on strings, but it produces Q-encoding, which is similar to quoted-printable but not quite the same:
String encoded = MimeUtility.encodeText(original, null, "Q");
Problem
I am looking for a way to `quoted-printable` encode a string in Java just like php's native `quoted_printable_encode()` function. I have tried to use JavaMails's MimeUtility library. But I cannot get the `encode(java.io.OutputStream os, java.lang.String encoding)` method to work since it is taking an OutputStream as input instead of a String (I used the function `getBytes()` to convert the String) and outputs something that I cannot get back to a String (I'm a Java noob :) Can anyone give me tips on how to write a wrapper that converts a String into an OutputStream and outputs the result as a String after encoding it?