本文主要是介绍form表单提交编码的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
浏览器在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 {@Overridepublic void destroy() {// TODO Auto-generated method stub}@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {// TODO Auto-generated method stubHttpServletRequest req= (HttpServletRequest) arg0;req.setCharacterEncoding("GBK");arg2.doFilter(req, arg1);}@Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub}}
这篇关于form表单提交编码的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!