gpt4 book ai didi

spring - Unicode字符和Spring JavaMailSenderImpl,在Linux下没有Unicode字符!

转载 作者:行者123 更新时间:2023-12-04 13:00:53 31 4
gpt4 key购买 nike

我正在使用Spring和JavaMailSenderImpl(著名的Spring类)来发送电子邮件。我的电子邮件中包含许多Unicode字符,例如èéàò或最引人注意的€符号。在Windows上运行时,我的类(class)工作正常。发送的电子邮件包含所有字符(纯文本,无html)。如果将我的应用程序安装在Linux虚拟服务器上,我会得到所有?而不是特殊字符。是Spring,Java配置还是其他?

更新

基本上,架构是这样的:有一个Spring Web Application,我使用spring JavaMailSenderImpl完成工作。这是servlet上下文中的配置:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${email.server}" />
<property name="username" value="${email.server_user}"></property>
<property name="password" value="${email.server_pass}"></property>
</bean>

我在Windows和Linux上使用同一主机发送邮件(这与应用程序运行所在的计算机不同……这只是SMTP上的标准邮件服务提供商)。

我用来发送电子邮件的代码很简单:
SimpleMailMessage msg = new SimpleMailMessage();
msg.setTo(adminEmail);
msg.setFrom(adminEmail);
msg.setSubject(subject);
msg.setText(message);
mailSender.send(msg);

均匀设置:
System.setProperty("mail.mime.charset", "utf8");

在应用程序启动时无法解决问题。实际上,在我获得之前?而不是€,现在我得到...

最佳答案

就我而言,我通过指定JavaMailSenderImpl的defaultEncoding解决了编码问题:

mailSender = new JavaMailSenderImpl();
...
mailSender.setDefaultEncoding("UTF-8");

我相信您也可以在bean配置中设置值:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
...
<property name="defaultEncoding" value="UTF-8"/>
</bean>

关于spring - Unicode字符和Spring JavaMailSenderImpl,在Linux下没有Unicode字符!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5636255/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com