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方法