最近在做web的项目,easyui的前台页面上的输入框输入中文的时候,输入OK的,进行submit以后,
后台取request的parameter的数据是乱码,在form所在的html文件里也定义了<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>,
后台采用的是Jfinal的框架,对request的字符串编码不方便修改,找了半天原因,最后发现其实是用Form的时候忘记定义【method="post"】。
在深化一下GET与POST的区别:
1.如果不是定义post,则会认为是get方式放在url后面提交,GET的方式将意味着数据以ASCII码方式提交,并且是需要编码后才
能设置正确的文字,并且GET方式提交的数据将受限于URL的长度。
2.POST的话 放在BODY里面发送,当然微软的IIS也有对POST的数据有限制(IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节)
如果HTML上定义了<meta>的charset,则指定该HTML里面form表单的post方法提交数据的URL encode编码方式为该charset.
不需要自己去做任何的编码转换。在服务器端读取的时候指定charset读取(默认是iso-8859-1)就可以正确的将数据读出来。
<form method="post" id="documentForm"> </form>
更详细的介绍和说明在:
1.参数传递中的编码问题(get和post方式)
2.Form表单中method="post/get'的区别
另外,在TOMCAT中,如果存在上传的时候出现中文字等上传的文件乱码问题,
则 可以在tomcat的conf文件夹下的找到server.xml文件 tomcat启动的所在的端口的
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
加上URI的编码为UTF-8