HTML的form表單編碼大全,form編碼詳解-建設HTML網站教程
作者:佚名 時間:2014-03-28 分享到:
HTML中的form表單有哪些編碼?哪些是標準編碼?表單中的數據是怎么傳輸的,下面我們介紹:
application/x一www-form一urlencoded編碼
標準編碼,也就是applicationlx-www-form-urlencoded,可以將表單值中的任何空格都轉換成加號(+),將非字母數字的字符轉換成百分號(%),后面跟有該字符ASCII碼的十六進制數’,并將多行表單數據中的換行符轉換成%OD%OA。
標準的編碼格式還包括表單中每個字段的名稱(字段,也就是field,是表單中的一個獨立的元素,它的值幾乎可以是任何內容,可以是一個數值,也可以是像用戶地址那樣的幾行文字)。如果一個字段中有多個值的話,這些值可以用“&”符號來進行分隔。
例如,下面的表單包括name和address這兩個輸人字段,其中name字段只有一行文字,而address字段則包括好幾行輸入。用戶填寫完該表單后,瀏覽器會把下
面的內容提交給服務器:
name=0’Reilly+and+Associates&address=101+Morris+Street%0D%0ASebastopol,}0D%0ACA+95472
我們在此處將這些內容分成兩行,是出于讓讀者看起來清晰一些的考慮。但是在實際中,瀏覽器在發送上述數據時,是以一個不間斷的字符串形式傳送的。name字段是“O'Reilly and Associates",而address字段的值(包括嵌人的換行符)是:
101 Morris Street
Sebastopol,
CA 95472
multipart/form一data編碼
多部分表單數據編碼可以將表單中的字段打包,使其成為一個與MIME兼容的單獨的復合型文檔中的幾個部分。每個字段在結果文件中都有自己對應的部分,并用由標準分隔符分開。在每一部分里,一個或多個標題行說明了該字段的名稱,其后緊跟著的一行或多行包含了該字段的值。由于每部分的值都可能包含二進制數據,或其他一些無法輸出的字符,因此,在傳輸數據的過程中,不會進行字符轉換或編碼方面的處理。
因此這種編碼格式肯定會比application/x-www-form-urlencoded編碼格式更冗長。同時,只有當<form>標簽中的method屬性設為post時,我們才能夠使用這種編碼格式。一個簡單的示例就可以讓我們很容易地理解這種格式。
這里還使用前面的那個示例,當以多部分表單數據格式進行傳輸時,情況就變成了下面這樣:
-------------------------------------------146931364513459Content一Disposition:form-data; name二”name‘,0’Reilly and Associates-------------------------------------------146931364513459Content一Dispos}.tion:form-data;name=”address”101 Morris StreetSebastopolCA 9x472-------------------------------------------146931364513459
傳輸中的第一行定義了分隔符,該分隔符將在文檔中每個部分的最前面出現。它總是由30個短劃線和一個很長的隨機數組成,這個隨機數可以將其與那些可能在真正的字段數據中出現的其他文字區分開來。
下一行包含了用于第一部分的標題字段。它總是一個Content-Disposition字段,用來說明此部分包含的表單數據,還提供了這部分中表單元素的名稱。也可以參閱其他的標題字段。值得一提的是,一些文件選擇字段包括了Content-Type標題字段,說明了要傳輸的文件中包含的數據類型。
標題字段后面緊接著是一個空行,然后是一行或多行真正的子段值。再次重復出現分隔行時意味著這一部分已經結束,而且該分隔行也表明了傳輸的開始。這樣,另一部分會馬上接上,這一過程會不斷重復,直到所有表單參數都傳輸結束時為止。在最后一個分隔行后面出現額外的兩個短線時,就表示傳輸已經結束。
我們在前面說過,只有當表單包含文件選擇字段時,我們才能夠采用多部分表單數據編碼格式。下面這個示例就說明了文件選擇字段的傳輸過程是怎樣進行的:
------------------------------------------146931364513459Content一Disposition:form}data; name=”thefile";filename=“test“Content一Type:text/plainFirst line ofthe file...Last line ofthe file------------------------------------------146931364513459
惟一需要注意的一點差異是,Content-Disposition字段包含一個額外的元素filename,這個元素定義了要傳輸的文件的名稱。還可以再附加一個Content-
Type字段來進一步說明文件的內容。
text/plain編碼
只有當無法訪問表單處理服務器,而且需要將表單信息通過電子郵件傳輸(這時表單的act}.on屬性必須是mailto URL)時,才可以采用這種純文本(text/plain )編碼格式。這種傳統的編碼格式是為減少計算機空間消耗量而設計的,純文本的設計考慮到了人們的具體情況。
在這種編碼方式中,表單中的每個元素都是單獨的一行,其中的名稱和數值都用等號分隔開來。再看一下我們那個關于名稱和地址的示例,這時的表單數據將如下所示:
name=0’Reilly and Associatesaddress=I01 Morris StreetHTML中的form表單有哪些編碼?哪些是標準編碼?表單中的數據是怎么傳輸的,下面我們介紹:application/x一ww..DHTML中的form表單有哪些編碼?哪些是標準編碼?表單中的數據是怎么傳輸的,下面我們介紹:application/x一ww..ASebastopol,HTML中的form表單有哪些編碼?哪些是標準編碼?表單中的數據是怎么傳輸的,下面我們介紹:application/x一ww..D$DACA 95472
可以看到,表單中進行編碼的字符僅僅是那些回車符和多行文本框中的換行符。否則,結果會非常容易讀出來,并且通過簡單的工具也通?梢越馕龀鰜怼