在我的 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
:
@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 编码问题。
我已经检查了 application.properties
文件的编码及其 UTF-8。
我的 IDE(STS/Eclipse) 和项目属性也设置为 UTF-8。
如何在 application.properties
文件中为自定义属性的文本设置 UTF-8 编码?
原文由 Patrick 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如评论中已经提到的那样,.properties 文件应该以 ISO 8859-1 编码。可以使用 unicode 转义符来指定其他字符。还有一个 工具 可用于进行转换。例如,这可以用于自动构建,这样您仍然可以在源代码中使用您喜欢的编码。