您的位置:首页 > 其它

form表单提交编码的问题

2015-01-20 17:11 337 查看
浏览器在form提交后,会生成一个HTTP的头部信息"content-type",标准规定其形式为Content-type: application/x-www-form-urlencoded; charset=UTF-8 

那么我们如果需要修改编码,不使用默认的,那么可以如下这样操作修改编码,来满足需求:

hmtl代码:

<meta http-equiv="Content-Type" content="text/html; charset=GBK" />


,那么此HTML的form表单将以GBK的编码方式提交数据。

这里补充一点就是,上面这种情况要生效,还有一个条件是(enctype必须是multipart/form-data类型)

):

<form action="" method="post" enctype="multipart/form-data"></form>

当然,如果不想这样,不使用这种方式,那么就得搞个过滤器,在过滤器中request中设置你希望的编码,方能达到表单post提交不乱码的效果。

public class EncodingFilter implements Filter {

@Override
public void destroy() {
// TODO Auto-generated method stub

}

@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req= (HttpServletRequest) arg0;
req.setCharacterEncoding("GBK");
arg2.doFilter(req, arg1);
}

@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: