HTML表单编码
enctype
属性指定浏览器如何编码数据并将其呈现给服务器。
此属性有三个允许值。
application/x-www-form-urlencoded
默认编码。此编码无法用于将文件上传到服务器。multipart/form-data
此编码用于将文件上传到服务器。text/plain
此编码因浏览器而异。
要理解不同编码的工作原理,我们创建了以下形式。
<!DOCTYPE HTML> <html> <body> <form method="post" action="http://example.com/form"> <input name="fave" /> <input name="name" /> <button>Submit Vote</button> </form> </body> </html>点击查看实例
application/x-www-form-urlencoded
如果使用 application / x-www-form-urlencoded
编码,每个数据项的名称和值都使用用于编码URL的相同方案进行编码。这是编码应用于示例形式的数据的方式:
fave=Apples&name=FiratName+LastName
特殊字符将替换为其HTML实体对应部分。数据项的名称和值由等号(=)分隔,数据/值元组由&符号(&)分隔。
multipart/form-data
multipart / form-data
编码往往仅用于上传文件。下面是示例表单中的数据如何编码:
------WebKitFormBoundary2desQWER543CDFGF Content-Disposition: form-data; name="fave" YourName ------WebKitFormBoundary2desQWER543CDFGF Content-Disposition: form-data; name="name" www.ancii.com ------WebKitFormBoundary2desQWER543CDFGF-- fave=Apple name=www.ancii.com
multipart/plain
主流浏览器以不同的方式对该编码进行编码。
Google Chrome以与application / x-www-form-urlencoded
方案相同的方式对数据进行编码,而Firefox对数据进行编码的方式如下:
fave=xml name=www.ancii.com
每个数据项都放在一行上,不会对特殊字符进行编码。