我有以下问题:
java.io.UnsupportedEncodingException: utf-7
at java.lang.String.lookupCharset(String.java:819) ~[?:?]
at java.lang.String.<init>(String.java:487) ~[?:?]
at jakarta.mail.internet.MimeUtility.decodeWord(MimeUtility.java:901) ~[jakarta.mail-2.0.1.jar:2.0.1]
at jakarta.mail.internet.MimeUtility.decodeText(MimeUtility.java:603) ~[jakarta.mail-2.0.1.jar:2.0.1]
at org.simplejavamail.converter.internal.mimemessage.MimeMessageParser.decodeText(MimeMessageParser.java:543) ~[simple-java-mail-8.0.0.jar:?]
at org.simplejavamail.converter.internal.mimemessage.DecodedHeader.of(DecodedHeader.java:30) ~[simple-java-mail-8.0.0.jar:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
at org.simplejavamail.converter.internal.mimemessage.MimeMessageParser.retrieveAllHeaders(MimeMessageParser.java:365) ~[simple-java-mail-8.0.0.jar:?]
at org.simplejavamail.converter.internal.mimemessage.MimeMessageParser.parseMimePartTree(MimeMessageParser.java:159) ~[simple-java-mail-8.0.0.jar:?]
at org.simplejavamail.converter.internal.mimemessage.MimeMessageParser.parseMimeMessage(MimeMessageParser.java:153) ~[simple-java-mail-8.0.0.jar:?]
at org.simplejavamail.converter.EmailConverter.mimeMessageToEmailBuilder(EmailConverter.java:138) ~[simple-java-mail-8.0.0.jar:?]
at org.simplejavamail.converter.EmailConverter.mimeMessageToEmailBuilder(EmailConverter.java:125) ~[simple-java-mail-8.0.0.jar:?]
at org.simplejavamail.converter.EmailConverter.emlToEmailBuilder(EmailConverter.java:398) ~[simple-java-mail-8.0.0.jar:?]
at org.simplejavamail.converter.EmailConverter.emlToEmail(EmailConverter.java:327) ~[simple-java-mail-8.0.0.jar:?]
at org.simplejavamail.converter.EmailConverter.emlToEmail(EmailConverter.java:319) ~[simple-java-mail-8.0.0.jar:?]
我尝试使用https://github.com/k9mail/jutf7并将其添加到pom文件中。在本地有效,但在 kubernetes 上无效。再次发生 UnsupportedEncodingException。
我想也许 kubernetes 或 docker(抱歉,我对 DevOps 的东西没有那么深入)无法将 UTF-7 库添加到类路径中。 所以我尝试将文件直接复制到我的项目中。我添加了一个带有服务文件的 META-INF 文件夹,并将我的 CharsetProvider 放入其中。
java.nio.charset.spi.CharsetProvider
de.afi.api.utility.encoding.utf7.CharsetProvider
再次在本地运行,但在 kubernetes 上不行。
我阅读了有关 UTF-7 和 CharsetProvider 的任何 stackoverflow 问题,但是否没有解决方案或解决方案对我来说是不可能的,例如我自己使用 CharsetProvider().charsetForName("...") ,这不是当简单的 java 邮件需要 UTF-7 时这是不可能的
我有一种感觉,从 META-inf/services 加载字符集对于
的组合不再起作用为了解决这个问题,我们使用 -Xbootclasspath
https://docs.oracle.com/cd/E15289_01/JRCLR/optionx.htm#i1018570