[Web学习]关于form提交的中文字符串错误笔记

来源:互联网 发布:网络it培训 编辑:程序博客网 时间:2024/06/03 14:19

最近在做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



0 0