当前位置: 首页 > 面试题库 >

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

萧英光
2023-03-14
问题内容

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

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

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


问题答案:

要使用此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");


 类似资料:
  • 我正在开发一个文本编辑器,我的下一个目标是在打印机上打印书面文本(而不是sysout)。 我试了很多次,它起作用了,但是换行符被忽略了。 我创建了一个新的图形并设置了字体。然后我把写在编辑器窗口中的文本。iPosX 你们有什么想法,我可以打印整个字符串考虑到行中断? 提前感谢!

  • 问题内容: 我知道可以在Java字符串中用双引号将符号放在双引号之前。但是,如果在字符串中经常使用双引号,那么是否有一种方法可以将字符串标记一次,因此不需要在每个双引号之前写上符号吗?(就像在C#中一样,可以将符号放在字符串之前)示例: 代替 问题答案: 你不能 但是,如果您懒得不能使用双引号,则可以使用一些技巧。例如: 输出:

  • 我想打印如下内容: abc、def、ghi、JKL、mno、pqr 我刚写的时候: 所以我试着: 这给了我: abc、def、ghi、jkl、mno、pqr

  • 问题内容: 我正在使用BeautifulSoup从HTML提取一些文本,但是我只是想不出如何正确地将其打印到屏幕(或与此相关的文件)上。 这是我的包含文本的类的样子: 当尝试打印一个实例时,这是我在控制台上看到的: 无论我尝试什么,都无法获得想要的输出(上面的文本应该是希伯来语)。我的最终目标是序列化到文件(使用json或pickle)并能够将其读回。 我在Ubuntu 10.10上使用Pytho

  • 问题内容: 有谁知道如何在Java中检测可打印字符? 一段时间(试用/错误)后,我得到了这种方法: 我通过KeyListener获取输入,然后按Ctr-“键”打印一个正方形。有了这个功能似乎还足够。 我在这里缺少一些字符吗? 问题答案: 看来这是“字体”的独立方式。

  • 问题内容: 我有这个: JSONLint表示这是完全有效的json。但是执行时出现错误。 但是,如果我将代码更改为: (请注意双反斜杠) 它可以工作,但是现在JSONLint表示。 有人可以帮助您了解这种行为吗? 问题答案: 有线格式和您必须在代码中编写的格式之间是有区别的。当您在代码中声明此代码时,您需要在文字中使用双-\,以便字符串获得一个反斜杠(否则,它将\\解释为一个转义序列,仅声明一个“