在我中application.properties,添加一些自定义属性。
application.properties
custom.mail.property.subject-message=This is a ä ö ü ß problem
在此类中,我具有自定义属性的表示形式。
@Component @ConfigurationProperties(prefix="custom.mail.property") public class MailProperties { private String subjectMessage; public String getSubjectMessage() { return subjectMessage; } public void setSubjectMessage(String subjectMessage) { this.subjectMessage = subjectMessage; }
在这里我用我的MailProperties:
MailProperties
@Service public class SimpleUnknownResponseMessage extends MailProperties implements UnknownResponseMessage{ private JavaMailSender javaMailSender; @Autowired public SimpleUnknownResponseMessage(JavaMailSender javaMailSender) { this.javaMailSender = javaMailSender; } @Override public void placeUnknownResponse(BookResponse bookResponse) { MimeMessage message = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8"); helper.setSubject(this.getSubjectMessage()); javaMailSender.send(message); } catch (MessagingException e) { e.printStackTrace(); } }
虽然调试我可以看到我的this.getSubjectMessage()变量有这个值内:This is a ä ö ü à problem。因此,在发送邮件之前,我已经遇到了UTF-8编码问题。
this.getSubjectMessage()
This is a ä ö ü à problem
我已经检查了application.properties文件及其UTF-8 的编码。
我的IDE(STS / Eclipse)和项目属性也在UTF-8上设置。
如何为文件中的自定义属性的文本设置UTF-8编码application.properties?
正如评论中已经提到的,.properties文件应在ISO 8859-1中进行编码。可以使用Unicode转义符来指定其他字符。还有一个工具可以进行转换。例如,可以在自动构建中使用它,以便您仍然可以在源代码中使用自己喜欢的编码。