正常情况下若SHOP++出现乱码问题,将Tomcat的编码格式统一修改为UTF-8格式即可解决,但在实际情况下并不是所有用户都有权限自行修改Tomcat编码格式(如虚拟主机环境)。SHOP++商业版加入了encodingFilter、encodingConvertFilter两个拦截器,轻松配置一下编码格式即可解决乱码问题,非常方便。
代码如下:
<!-- 编码处理过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!-- 编码格式转换过滤器 -->
<filter>
<filter-name>encodingConvertFilter</filter-name>
<filter-class>net.shopxx.filter.EncodingConvertFilter</filter-class>
<init-param>
<param-name>fromEncoding</param-name>
<param-value>ISO-8859-1</param-value>
</init-param>
<init-param>
<param-name>toEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>