我正在寻找一种在 Java 中quoted-printable
编码字符串的方法,就像 php 的原生 quoted_printable_encode()
功能。
我曾尝试使用 JavaMails 的 MimeUtility 库。但我无法获得 encode(java.io.OutputStream os, java.lang.String encoding)
方法工作,因为它采用 OutputStream 而不是 String 作为输入(我使用函数 getBytes()
来转换 String)并输出一些我无法返回到 String 的东西(我是一个 Java 新手 :)
谁能告诉我如何编写一个将字符串转换为 OutputStream 并在编码后将结果作为字符串输出的包装器?
最佳答案
要使用此 MimeUtility
方法,您必须创建一个 ByteArrayOutputStream
,它将累积写入其中的字节,然后您可以恢复这些字节。例如,要对字符串 original
进行编码:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream encodedOut = MimeUtility.encode(baos, "quoted-printable");
encodedOut.write(original.getBytes());
String encoded = baos.toString();
encodeText
来自同一类的函数将对字符串起作用,但它会产生 Q 编码,即 similar to quoted-printable but not quite the same :
String encoded = MimeUtility.encodeText(original, null, "Q");
关于Java:在引用打印中编码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21574745/