enctype属性指定了表单数据向服务器提交时所采用的编码类型,默认的缺省值是“application/x-www-form-urlencoded”。
application/x-www-form-urlencoded 在发送前编码所有字符(默认) 空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值。
multipart/form-data 不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。
text/plain 空格转换为 “+” 加号,但不对特殊字符编码。
来源w3csvhool
第二个属性设置表单的MIME编码在上传文件时,必须使用。
其中对于第一个和第三个属性的特殊符号是否编码存在疑问,本人测试了一些特殊符号如!@#¥%^都会转成hex编码。目前我的理解是第一个属性和第三个属性没有差别。如果我的理解是错的,烦请留言告知,不胜感激。
测试数据: ~!@#$%^&*()_+
输出结果:+~%21%40%23%24%25%5E%26*%28%29_%2B
注:输入数据第一个字符是空格。
代码如下:
<html>
<body>
<form action="" method="get" enctype="text/plain">
First name: <input type="text" name="fname" /><br />
<input type="submit" value="Submit" />
</form>
</body>
</html>
测试数据同上一组
输出结果:+~%21%40%23%24%25%5E%26*%28%29_%2B
代码如下:
<html>
<body>
<form action="" method="get" enctype="application/x-www-form-urlencoded">
First name: <input type="text" name="fname" /><br />
<input type="submit" value="Submit" />
</form>
</body>
</html>