Nel mio application.properties
aggiungo alcuni attributi personalizzati.Codifica UTF-8 degli attributi application.properties in Spring-Boot
custom.mail.property.subject-message=This is a ä ö ü ß problem
In questa classe ho la rappresentazione degli attributi personalizzati.
@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;
}
E qui uso il mio 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();
}
}
Durante il debug posso vedere che la mia variabile this.getSubjectMessage()
ha questo valore all'interno: This is a ä ö ü à problem
. Quindi, prima di inviare la mia posta ho già un problema di codifica UTF-8.
Ho già controllato la codifica del file application.properties
e di UTF-8.
Anche il mio IDE (STS/Eclipse) e le proprietà del progetto sono impostati su UTF-8.
Come è possibile impostare la codifica UTF-8 per il testo dei miei attributi personalizzati nel file application.properties
?
Ricordo di aver letto da qualche parte che Java si aspetta che i file '* .properties' siano codificati in ISO-8859-1 ed è per questo che Spring tratta' application.properties' come se fosse in ISO-8859-1. Vedi questa domanda: [modifica della codifica delle proprietà di default di Spring Boot?] (Http://stackoverflow.com/questions/27882191/spring-boot-default-properties-encoding-change). Soluzione possibile: utilizzare YAML anziché i file delle proprietà. – Jesper
@Jesper sì, ho controllato anche questa risposta. Spero ancora che ci sia forse un'altra soluzione per i file delle proprietà. – Patrick