संक्षिप्त उत्तर: iso-8859-1 जब तक एन्कोडेड-शब्द RFC2047 (MIME) के अनुसार उपयोग नहीं किए जाते हैं।
लंबी व्याख्या:
RFC2617, अनुभाग 2 (HTTP प्रमाणीकरण) बुनियादी-विश्वसनीयता को परिभाषित करता है :
basic-credentials = base64-user-pass
base64-user-pass = <base64 encoding of user-pass,
except not limited to 76 char/line>
user-pass = userid ":" password
userid = *<TEXT excluding ":">
password = *TEXT
बीएनएफ में परिभाषाओं के लिए RFC2616 (HTTP 1.1) का उल्लेख किए बिना कल्पना को नहीं पढ़ा जाना चाहिए (जैसे ऊपर वाला):
यह विनिर्देश HTTP / 1.1 विनिर्देश 2 का एक साथी है । यह उस दस्तावेज़ के संवर्धित BNF खंड 2.1 का उपयोग करता है, और उस दस्तावेज़ में परिभाषित गैर-टर्मिनलों और HTTP / 1.1 विनिर्देश के अन्य पहलुओं पर निर्भर करता है।
RFC2616, खंड 2.1 पाठ (जोर मेरा) को परिभाषित करता है :
पाठ नियम केवल वर्णनात्मक क्षेत्र सामग्री और मूल्यों के लिए उपयोग किया जाता है जो संदेश पार्सर द्वारा व्याख्या किए जाने के लिए अभिप्रेत नहीं हैं। * TEXT MAY के शब्दों में RFC 847 के नियमों के अनुसार एन्कोड किए जाने पर ही ISO-8859-1 के अलावा अन्य कैरेक्टर सेट से कैरेक्टर होते हैं
।
TEXT = <any OCTET except CTLs, but including LWS>
इसलिए यह निश्चित रूप से iso-8859-1 है जब तक आप RFC2047 (MIME pt। 3) नियमों के अनुसार कुछ अन्य एन्कोडिंग का पता नहीं लगाते हैं:
// Username: Mike
// Password T€ST
Mike:=?iso-8859-15?q?T€ST?=
इस स्थिति में शब्द में यूरो चिह्न के 0xA4
अनुसार एनकोड किया जाएगा iso-8859-15 के । यह मेरी समझ है कि आपको इन एन्कोडेड शब्द सीमांकक के लिए जांच करनी चाहिए, और फिर निर्दिष्ट एन्कोडिंग के आधार पर अंदर के शब्दों को डीकोड करना चाहिए। यदि आप ऐसा नहीं करते हैं, तो आप सोचेंगे कि पासवर्ड है =?iso-8859-15?q?T¤ST?=
(नोटिस जो कि iso-8859-1 के रूप में व्याख्या 0xA4
करने ¤
पर डिकोड किया जाएगा )।
यह मेरी समझ है, मुझे इन RFC की तुलना में अधिक स्पष्ट पुष्टि नहीं मिल सकती है। और इसमें से कुछ विरोधाभासी लगते हैं। उदाहरण के लिए, RFC2047 (MIME, pt। 3) के 4 घोषित लक्ष्यों में से एक को फिर से परिभाषित करना है:
संदेशों के प्रारूप के लिए अनुमति देने के लिए ... चरित्र में शाब्दिक हैडर जानकारी US-ASCII के अलावा अन्य सेट करती है।
लेकिन फिर RFC2616 (HTTP 1.1) TEXT नियम का उपयोग करके एक हैडर को परिभाषित करता है जो iso-8859-1 के लिए चूक करता है। क्या इसका मतलब यह है कि इस हेडर के प्रत्येक शब्द को एन्कोडेड-वर्ड (यानी) होना चाहिए=?...?=
फॉर्म) ?
प्रासंगिक भी, कोई वर्तमान ब्राउज़र ऐसा नहीं करता है। वे utf-8 (क्रोम, ओपेरा), iso-8859-1 (Safari), सिस्टम कोड पेज (IE) या कुछ और (जैसे फ़ायरफ़ॉक्स के मामले में utf-8 से केवल सबसे महत्वपूर्ण बिट) का उपयोग करते हैं।
संपादित करें: मैंने महसूस किया कि यह उत्तर सर्वर-साइड परिप्रेक्ष्य से अधिक समस्या को देखता है।