用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

路易斯陈凯瑞    -  云代码空间

—— 天行健,君子以自强不息。地势坤,君子以厚德载物

在系统接入支持多种编码

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来实现。
目前能想到的就这个了,以后有好的再考虑优化


顶 0踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: 路易斯陈凯瑞
    • 等级: 中级程序员
    • 积分: 236
    • 代码: 4 个
    • 文章: 3 篇
    • 随想: 0 条
    • 访问: 5 次
    • 关注

    最新提问

      站长推荐