2014-08-20|1402阅|作者:路易斯陈凯瑞|举报 摘要:乱码问题一直是web开发的一个痛点,作为一个开放的系统一定是可以支持多种编码的
当前系统只支持UTF编码接入,通过encodingFilter进行筛选过滤,如下:
<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-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
但是最新接入的商户需要使用GBK编码,为了减少对已有系统的影响,考虑到filter的传递性,于是增加如下filter对应新的url pattern
<filter>
<filter-name>gbkEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>gbkEncodingFilter</filter-name>
<url-pattern>/gbkurl</url-pattern>
</filter-mapping>
通过这样设置,至少保证从request到应用的链路不会产生乱码,同样有其他需求可以通过新增对应字符编码的filter和url mapping来实现。
目前能想到的就这个了,以后有好的再考虑优化