关闭

乱码处理及编码格式

506人阅读 评论(0) 收藏 举报
一、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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:613950次
    • 积分:8708
    • 等级:
    • 排名:第2185名
    • 原创:326篇
    • 转载:40篇
    • 译文:0篇
    • 评论:24条
    最新评论