乱码处理及编码格式

一、response:从服务器返回页面:
        1、jsp中设置charset=GBK
        2、response.setContentType("text/xml;charset=GBK")
    
二、request:到服务器再到数据库
        1、get和post请求:
            new String(strObj.getBytes("iso-8859-1"),"GBK")        
        2、post请求:
            a、request.setCharacterEncoding("GBK");
            b、可以设置filter过滤器拦截
        3、get请求:
            步骤1、先配置服务器的设置,如tomcat:在它的\conf\server.xml中:
                <Connector port="8080" protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="8443"
                 URIEncoding="GB18030"/>    //增加URIEncoding的设置
        步骤2、然后在java中对中文采用java.net.URLEncoding.encode()编码
            
三、response.sendRedirect重定向时:
        1、采用new String(strObj.getBytes("iso-8859-1"),"GBK")
        2、采用与上面一样的处理:    
            步骤1、先配置服务器的设置,如tomcat:在它的\conf\server.xml中:
                    <Connector port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443"
                     URIEncoding="GB18030"/>    //增加URIEncoding的设置
          步骤2、然后在java中对中文采用java.net.URLEncoding.encode()编码,比如:
                //errorMessage为字符串
                //URLEncoder.encode(errorMessage, "GB18030"))用来将errorMessage的编码格式转换为GB18030格式
                response.sendRedirect(request.getContextPath() + "/basedata/my.jsp?errorMessage=" + URLEncoder.encode(errorMessage, "GB18030"));

四、spring的乱码过滤器:org.springframework.web.filter.CharacterEncodingFilter
        web.xml中配置:
        <filter>
            <filter-name>encodingFilter</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>
        </filter>
        <filter-mapping>
            <filter-name>encodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
       </filter-mapping>
    
    
几种编码范围:            
    GB18030:    覆盖了所有unicode编码,是windows的默认编码格式。
    GBK:            编码能够表示繁体字和简体字。
    GB2312:    只能表示简体字。
    按照包含汉字范围排序 GB18030 > GBK > GB2312
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值