一个困扰项目两个多月的问题,spring 4环境,tomcat7,大部分情况下都运行正常,但是偶然会出现整个页面的中文都是问号的情况,开发环境、测试环境、正式环境都出现过,个别正式生产环境又是好的。
这种情况出现的概率很随机,时间不定、周期不定、没有固定的模式。
经跟踪,当整个页面中文变问号的时候,浏览器端接收到的response内容,content-type是空的。
尝试了网络上各种解决中文乱码问题的方法都没有用,最后只能用排除法,最后定位到是jsp文件解析配置的问题,原来是这么配置的:
<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/page/${FrontEndStyle}/"/> <property name="suffix" value=".jsp"/> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="contentType"> <value>text/html;charset=UTF-8</value> </property> </bean> 后来改成这样:
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/page/${FrontEndStyle}/"/> <property name="suffix" value=".jsp"/> <property name="contentType"> <value>text/html;charset=UTF-8</value> </property> </bean> 问题解决。