J2EE网页乱码GET跟Post

J2EE网页乱码GET和Post

一、post提交方式乱码   

     form表单中已post方式提交(tomcat服务器),需要做到编码统一,这里统一utf-8

        1、jsp页面设置编码格式

          <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

        2、设置servlet中的编码格式

             request.setCharacterEncoding("UTF-8");
             response.setCharacterEncoding("UTF-8");

           或者设置过滤器

         public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		// TODO Auto-generated method stub
		    arg1.setCharacterEncoding("UTF-8");
			arg0.setCharacterEncoding("UTF-8");
			arg2.doFilter(arg0, arg1);
	}


       3、统一tomcat服务器编码

             apache-tomcat-6.0.18——conf——server.xml

            中

            <Connector URIEncoding="utf-8" 
port="8080"   maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />

这三步基本上就解决post提交方式的乱码,通过request.getParameter获取汉字

 

二、get提交方式乱码

      方法一:(在java文件中更改)(我试过)

                       通过request.getParameter获取数据后,用iso-8859-1的编码将其转化成byte数组,在new一个String对象,参数1:byte数组,参数2:编码方式

                     String gd_name =  (String)request.getParameter("gd_name");
                     gd_name=new String(gd_name.getBytes("iso-8859-1"), "utf-8");

   方法二:

                    encodeURI方法

                    decodeURI方法

    方法三:java中

                    java.net.URLDecoder.decode方法

                    java.net.URLEncoder.encode方法