解决使用Idea启动Tomcat, Spring Message中文乱码

背景

传统的Spring MVC 项目,在IDEA中直接启动Tomcat,Spring-message引用的页面出现乱码。其中messages.properties文件位于:resources目录下,且所有的文件都以UTF-8编码了。

开发环境:

  • Spring 3.x
  • Tomcat8.x
  • IDEA
  • JDK8

问题原因

出现问题的原因是:spring.xml beans配置中没有指定默认编码格式(深层原因未探究)。

解决方案

1
2
3
4
5
6
7
8
9
10
11
12
<!-- 国际化字符串 -->
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:/commons</value>
<value>/WEB-INF/classes/messages</value>
</list>
</property>
<property name="defaultEncoding" value="UTF-8"/> <!--这里,指定字符编码为UTF-8-->
<property name="cacheSeconds" value="3600" />
</bean>