表单提交数据乱码:
对于get方法提交:
找到tomcat安装路径下的conf文件夹下面的server.xml,打开将<Connector>添加URIEncoding=”utf-8”,见红字部分即可。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
此方法只适用于get方法。
对于post方法:
有几种解决方法,
①在jsp页中添加如下代码:request.setCharacterEncoding("utf-8");有的时候需要添加respon.setCharacterEncoding(“utf-8”);
②使用过滤器(比较推荐):
在项目的src文件夹下面添加新建一个类PageEncodingFilter,代码如下:
中文过滤器的代码:
package com.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;//如上为所用到的类
//中文过滤器 三个方法,一个属性
public class PageEncodingFilter implements Filter {
private String encode;
// 初始化,encoding初始值从“web.xml”而来
public void init(FilterConfig arg0) throws ServletException {
this.encode = arg0.getInitParameter("encoding");
}
// 执行过滤
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException{
HttpServletRequest request = (HttpServletRequest) arg0;// 强转HttpServletRequest
request.setCharacterEncoding(encode);// 参数encode即为 String,切勿再加"双引号"
arg2.doFilter(arg0, arg1);
}
// 销毁
public void destroy() {
this.encode = null;
}
}
说明:
//创建步骤:
1.新建 class 实现 接口 Filter (所在包为 带有“javax.servlet.Filter”,依“MyEclips”版本不同,略有不同);
2.修改代码如上即可;
3.打开“web.xml”(此文件在webRoot/WEB-INF/web.xml)文件进行 如下配置。
配置代码:
<!-- 中文过滤器初始化参数设置 -->
<filter>
<filter-name>PageEncodingFilter</filter-name><!--过滤器的名字-->
<filter-class>org.ty.struts.util.PageEncodingFilter</filter-class><!--过滤器文件所在位置-->
<init-param>
<param-name>encoding</param-name><!--初始参数名,指定jsp页面所用 编码集-->
<param-value>utf-8</param-value><!--初始参数值 ,指定中文编码集-->
</init-param>
</filter>
<!-- 过滤器 映射路径配置 -->
<filter-mapping>
<filter-name>PageEncodingFilter</filter-name>
<url-pattern>/*</url-pattern><!--对所有目录进行中文过滤 -->
</filter-mapping>
jsp页面乱码:
在jsp代码中添加如下代码:
<%@ page language="java" import="java.util.*"pageEncoding="utf-8"%>
html中文件
在head头中添加如下代码
<head>
<meta http-equiv="content-type"content="text/html; charset=UTF-8">
</head>