कोई भी चरित्र जिसे आप [X] में शामिल कर सकते हैं, HTML फ़ाइल में डाल देना ठीक है <input name>
। जैसा कि एलेन की टिप्पणी में कहा गया है, <input name>
युक्त के रूप में परिभाषित किया गया है CDATA
, इसलिए केवल वही चीजें जो आप वहां नहीं डाल सकते हैं वे नियंत्रण कोड और अमान्य कोडपॉइंट हैं जो अंतर्निहित मानक (एसजीएमएल या एक्सएमएल) को रोकते हैं।
HTML4 कल्पना से एलन ने डब्ल्यू 3 उद्धृत किया:
ध्यान दें। "प्राप्त" विधि ASCII वर्णों के लिए डेटा सेट मान को प्रतिबंधित करती है। केवल "पोस्ट" विधि (enctype = "मल्टीपार्ट / फॉर्म-डेटा" के साथ) पूरे ISO10642 वर्ण सेट को कवर करने के लिए निर्दिष्ट है।
हालांकि यह वास्तव में व्यवहार में सच नहीं है।
सिद्धांत यह है कि application/x-www-form-urlencoded
डेटा में फ़ॉर्म के नाम या मूल्यों के लिए एन्कोडिंग निर्दिष्ट करने के लिए कोई तंत्र नहीं है, इसलिए गैर-ASCII वर्णों का उपयोग करना या तो "निर्दिष्ट नहीं" है जैसा कि काम करना है और आपको multipart/form-data
इसके बजाय POSTed का उपयोग करना चाहिए ।
दुर्भाग्य से, वास्तविक दुनिया में, कोई भी ब्राउज़र किसी फ़ील्ड के लिए एन्कोडिंग निर्दिष्ट नहीं करता है, भले ही वह सैद्धांतिक रूप से किसी multipart/form-data
POST अनुरोध निकाय के उप-शीर्ष शीर्षलेखों में हो । (मेरा मानना है कि मोज़िला ने इसे एक बार लागू करने की कोशिश की, लेकिन सर्वर टूटने के बाद इसका समर्थन किया।)
और कोई भी ब्राउज़र आश्चर्यजनक रूप से जटिल और बदसूरत RFC2231 मानक को लागू नहीं करता है जो कि मल्टीपार्ट के सबपार्टर हेडर में एनकोडेड गैर-एएससीआईआई फील्ड नामों को सम्मिलित करने के लिए आवश्यक होगा। किसी भी स्थिति में, परिभाषित करने वाली HTML युक्ति multipart/form-data
सीधे यह नहीं कहती है कि RFC2231 का उपयोग किया जाना चाहिए, और, यदि इसे आज़माया जाता है, तो यह फिर से सर्वर को तोड़ देगा।
तो स्थिति की वास्तविकता यह है कि यह जानने का कोई तरीका नहीं है कि एक फॉर्म सबमिशन में नामों और मूल्यों के लिए एन्कोडिंग का क्या उपयोग किया जा रहा है, चाहे वह किस प्रकार का हो। फ़ील्ड नाम और मान के साथ क्या करेंगे जो गैर- ASCII वर्ण हैं, GET और दोनों प्रकार के POST फ़ॉर्म के लिए समान हैं: यह एन्कोडिंग पृष्ठ का उपयोग करते हुए एन्कोडिंग का उपयोग करके उन्हें एन्कोड करता है। गैर- ASCII GET फॉर्म नाम बाकी सब चीजों से ज्यादा टूटे हुए नहीं हैं।
DLH:
इसलिए नाम में अन्य तत्वों की तुलना में एक अलग डेटा प्रकार है?
वास्तव में एकमात्र तत्व जिसकी name
विशेषता नहीं CDATA
है <meta>
। सभी के विभिन्न उपयोगों के लिए HTML4 युक्ति की विशेषता सूची देखें name
; यह एक अतिभारित विशेषता नाम है, विभिन्न तत्वों पर कई अलग-अलग अर्थ हैं। यह आमतौर पर एक बुरी बात मानी जाती है।
हालाँकि, आमतौर पर इन दिनों आप name
फॉर्म फील्ड (जहां यह एक नियंत्रण नाम है) और param
(जहां यह एक प्लग-इन विशेष पैरामीटर पहचानकर्ता है) को छोड़कर बचना होगा । यह केवल दो अर्थों से जूझना है। पृष्ठ पर या name
जैसे तत्वों की पहचान के लिए पुराने स्कूल के उपयोग से बचा जाना चाहिए ( इसके बजाय उपयोग )।<form>
<a>
id
name
लिए एक अलग डेटा प्रकार है<input>
? दिलचस्प।