小编典典

Spring-Boot中application.properties属性的UTF-8编码

spring-boot

在我中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上设置。

如何为文件中的自定义属性的文本设置UTF-8编码application.properties


阅读 625

收藏
2020-05-30

共1个答案

小编典典

正如评论中已经提到的,.properties文件应在ISO
8859-1中进行编码。可以使用Unicode转义符来指定其他字符。还有一个工具可以进行转换。例如,可以在自动构建中使用它,以便您仍然可以在源代码中使用自己喜欢的编码。

2020-05-30