tomcat + spring MimeMessageHelper encode
中国的程序员在写代码时,永远都会受到乱码的困扰,什么时候才能不在编码的问题的上浪费大量时间啊!
Spring框架中的MimeMessageHelper可以帮助发送各种各样格式的邮件,我在使用它发送html格式的邮件时,又一次遇到了乱码问题。
debug发现数据到达后台时已经变成了乱码,但是前端页面确实已经进行了utf-8的编码,于是想到可能tomcat的问题,可能是传到后台的过程中由于tomcat没有正确解析所以导致乱码,于是对tomcat中conf/server.xml做了如下修改:
<connector connectiontimeout="20000" uriencoding="UTF-8" protocol="HTTP/1.1" port="8080" redirectport="8443"></connector>
即添加了URIEncoding=”UTF-8”属性。 再次debug,发现数据到达后台是正确的,但是进入MimeMessageHelper后发现出现乱码,问题出现在MimeMessageHelper中,我起初使用的MimeMessageHelper构造器是这样的:
MimeMessageHelper helper = new MimeMessageHelper(message, true);
不知道编码居然是GBK,去官网查了下,发现MimeMessageHelper有带有编码信息的构造器,于是把代码改成了:
MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
Problem Solved!
blog comments powered by Disqus