[置顶] 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提交方式乱码
将post的方法配置一遍再:
1、jsp页面中:encodeURI( 汉字),有的浏览器不加行,最好都加
如:location.href="<%=path%>/typeAction.do?method=selectpage&billconf1="+encodeURI( a.value);
2、在servlet或者action中
通过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");
转自:http://blog.csdn.net/myfmyfmyfmyf/article/details/8118850
浙公网安备 33010602011771号