小编典典

Java:使用带引号的可打印字符串编码

java

我正在寻找一种quoted- printable在Java中编码字符串的方法,就像php的本机quoted_printable_encode()函数一样。

我试图使用JavaMails的MimeUtility库。但是我无法使该encode(java.io.OutputStream os, java.lang.String encoding)方法起作用,因为它采用OutputStream作为输入而不是字符串(我使用该函数getBytes()转换了字符串)并输出了无法返回字符串的内容(我是Java
noob :)

谁能给我提示如何编写将字符串转换为OutputStream并在编码后将结果输出为String的包装器?


阅读 341

收藏
2020-11-26

共1个答案

小编典典

要使用此MimeUtility方法,您必须创建一个ByteArrayOutputStream,它将累积写入其中的字节,然后可以将其恢复。例如,对字符串进行编码original

ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream encodedOut = MimeUtility.encode(baos, "quoted-printable");
encodedOut.write(original.getBytes());
String encoded = baos.toString();

encodeText来自同一个类的函数可以在字符串上运行,但是会产生Q编码,这与quoted-
printable相似,但并不完全相同

String encoded = MimeUtility.encodeText(original, null, "Q");
2020-11-26