HTML 表單編碼
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.w3cschool.cn ------WebKitFormBoundary2desQWER543CDFGF-- fave=Apple name=www.w3cschool.cn
multipart/plain
主流瀏覽器以不同的方式對該編碼進行編碼。
Google Chrome以與application / x-www-form-urlencoded
方案相同的方式對數據進行編碼,而Firefox對數據進行編碼的方式如下:
fave=xml name=www.w3cschool.cn
每個數據項都放在一行上,不會對特殊字符進行編碼。