2008-09-26 9 views
24

RFC 1738 यूआरएल के लिए वाक्यविन्यास निर्दिष्ट करती है और कहा गया है किमुझे एक यूआरएल में एन्कोड किए गए अक्षरों को किस चरित्र सेट में रखना चाहिए?

यूआरएल
US-ASCII कोडित वर्ण सेट का ग्राफिक मुद्रण योग्य पात्रों के साथ ही लिखा जाता है। ऑक्टेट्स 80-एफएफ हेक्साडेसिमल
यूएस-एएससीआईआई में उपयोग नहीं किया जाता है, और ऑक्टेट्स 00-1F और 7 एफ हेक्साडेसिमल
नियंत्रण वर्णों का प्रतिनिधित्व करता है; ये एन्कोडेड होना चाहिए।

हालांकि, यह नहीं कहता कि इन ऑक्टेट्स को कौन सा कोड सेट करता है।

RFC 2396 कोशिश करते हैं और स्थिति पर सुधार करने के लिए लगता है, लेकिन:

मूल चरित्र दृश्यों कि गैर ASCII वर्ण के लिए, तथापि, स्थिति और अधिक मुश्किल है। इंटरनेट प्रोटोकॉल कि करने का इरादा ओकटेट दृश्यों संचारित प्रतिनिधित्व चरित्र दृश्यों का इस्तेमाल किया है, तो हो सकता है एक से अधिक [RFC2277] चारसेट की पहचान की किसी तरह से उपलब्ध कराने की उम्मीद कर रहे हैं। हालांकि, वर्तमान में इस पहचान को पूरा करने के लिए सामान्य यूआरआई वाक्यविन्यास के भीतर कोई प्रावधान नहीं है। एक व्यक्तिगत यूआरआई योजना के लिए एक सिंगल वर्णसेट की आवश्यकता हो सकती है, एक डिफ़ॉल्ट वर्णसेट परिभाषित किया जा सकता है, या उपयोग किए गए वर्णमाला को इंगित करने का एक तरीका प्रदान करता है।

यह उम्मीद की जाती है कि यूआरआई के भीतर वर्ण एन्कोडिंग का व्यवस्थित उपचार होगा जो इस विनिर्देश के भविष्य में संशोधन के रूप में विकसित किया गया है।

कोई unambigous जिस तरह एक ग्राहक निर्धारित कर सकते हैं जो चरित्र में एन्कोड ओक्टेट्स व्याख्या करने के लिए, या जिसमें एक सर्वर निर्धारित कर सकते हैं क्या एक ग्राहक के साथ सांकेतिक शब्दों में बदलना करने के लिए इस्तेमाल सेट है?

यह UTF-8 के लिए सबसे सर्वर डिफ़ॉल्ट की तरह मुझे लग रहा है, लेकिन यह एक वास्तविक विकल्प एक निर्धारित एक से अधिक हो रहा है।

उत्तर

11

आपके उद्धरण के अनुसार, यूआरएल ASCII हैं। बस इतना ही।

यूआरआई OTOH, बड़ा वर्णसेट के लिए अनुमति देते हैं; आमतौर पर यूटीएफ -8 जैसा आपने स्वयं कहा था।

याद करने की बात यह है कि यूआरएल यूआरआई के एक सबसेट हो रहा है। इसलिए, वास्तविक सवाल यह है कि आप इनमें से कौन सा ब्राउज़र में लिखते हैं? मुझे लगता है कि आप एक यूआरआई लिख सकते हैं, और ब्राउज़र को यूआरएल में बदलने के लिए सबसे अच्छा प्रयास करना चाहिए (जो HTTP/1.1 समर्थन, AFAICR है)। गैर-ASCII वर्णों के लिए, इसका अर्थ है हेक्सकोड, आमतौर पर यूटीएफ -8 कोडिंग।

+1

यूआरएल अपारदर्शी पहचानकर्ता नहीं वर्ण एन्कोडिंग होती है, अपारदर्शी पहचानकर्ता पात्रों में से एक द्विआधारी स्ट्रिंग केवल लक्ष्य मेजबान वे करना है करने के लिए एक अर्थ नहीं है कि माना जा सकता है। लक्ष्य होस्ट यह कर सकता है कि यह यूआरएल डेटा की एक चरित्र-सेट व्याख्या लागू करे। इसका मतलब है कि क्लाइंट का अर्थ या चरित्र सेट पर कोई नियंत्रण नहीं है और यूआरएल की व्याख्या सर्वर के लिए 100% मामला है क्योंकि कोई विकल्प व्यक्त करने का कोई तरीका नहीं है।तो मूल प्रश्न का उत्तर देने के लिए आप किसी चरित्र-सेट को नहीं मान सकते हैं, यह सर्वर कार्यान्वयन विशिष्ट है इसलिए सर्वर व्यवस्थापक से पूछें। –

4

मेरा मानना ​​है कि विनिर्देश आप देख रहे हैं RFC 3987, जो आइरिस का वर्णन करता है - अंतर्राष्ट्रीय संसाधन पहचानकर्ता।

संबंधित मुद्दे