我有一段文本:
“Csuklási roham gyötörheti a svédeket, annyit emlegetik mostanság ismét a svéd modellt Magyarországon。”
原始文本中没有任何换行。
当我通过电子邮件(使用gmail)发送此文本时,它被编码为以下内容:
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Csukl=E1si roham gy=F6t=F6rheti a sv=E9deket, annyit emlegetik mostans=E1g =
ism=E9t a
sv=E9d modellt Magyarorsz=E1gon.
在HTML中:
Content-Type: text/html; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
<span class=3D"Apple-style-span" style=3D"font-family: Helvetica, Verdana, = sans-serif; font-size: 15px; ">Csukl=E1si roham gy=F6t=F6rheti a sv=E9deket= , annyit emlegetik mostans=E1g ism=E9t a sv=E9d modellt Magyarorsz=E1gon.
当我尝试将电子邮件正文解析为text/plain时,我无法去掉“mostans=E1g = ism=E9t”中的=符号。请注意,HTML编码消息中缺少相同的字符。我不知道那个特殊字符可能是什么,但我需要消除它以恢复原始文本。
我尝试替换'\n',但不是这个字符。如果我在文本中按“Enter”,我可以正确地将其替换为任何我想要的字符。我还尝试了'\r'和'\t'。
所以问题是,我错过了什么?那个特殊字符来自哪里?是由于字符集和/或传输编码吗?如果是这样,我该怎么做才能解决问题并恢复原始文本。
欢迎任何帮助。
问候, Balázs
InputSupplier
的正确方法。一个InputSupplier
应该在每次调用它的getInput()
方法时返回一个新的InputStream
或Reader
,或者其他什么东西。在这里,你的InputSupplier
可能应该在其构造函数中接受一个InputSupplier<?extends InputStream>
。在getInput()
中,它应该调用该供应商的getInput()
,然后使用MimeUtility.decode
包装流并返回结果。然后,你可以将其与Files.newInputStreamSupplier(File)
一起使用。 - ColinD