今天同事咨询乱码问题,看了一下,主要有两块乱码:
1.tomcat的输出日志乱码:
项目使用的是logback+slf4j,tomcat默认日志输出使用的是ConsoleAppender,添加编码方式即可。如下:
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<Encoding>UTF-8</Encoding>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${default.pattern}</pattern>
</layout>
</appender>
2. 使用JavaMailSender发生邮件乱码,乱码方法为:
public void sendEmail(String sendTo, String subject,
String emailText) {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(sendFrom);
msg.setTo(sendTo);
msg.setSubject(subject);
msg.setText(emailText);
mailSender.send(msg);
}
显示没有指定编码方式,可以修改为:
public void doSendMailTwo() {
JavaMailSender javaMailSender = (JavaMailSender) mailSender;
MimeMessage mime = javaMailSender.createMimeMessage();
MimeMessageHelper helper;
try {
helper = new MimeMessageHelper(mime, true, "utf-8");
helper.setFrom("....@xxx.com");
helper.setTo("....@xxx.com");
helper.setCc("hanmeimei@xxx.com");
helper.setSubject("第二封測試郵件");
helper.setText("Dear All:\n" + "這是一封測試郵件!");
} catch (MessagingException me) {
me.printStackTrace();
}
javaMailSender.send(mime);
}