यह विशिष्ट कार्यक्रम पर निर्भर करता है। सबसे अच्छा वे कर सकते हैं।
कंप्यूटर में कोई एकल "प्रेजेंटेशन लेयर" नहीं है - यह ओएस और / या व्यक्तिगत कार्यक्रमों का सिर्फ एक अस्पष्ट रूप से परिभाषित हिस्सा है। प्रत्येक कार्यक्रम अलग है कि आप इसे परतों में कैसे अलग करेंगे (यदि बिल्कुल भी)। और एक कंप्यूटर के सभी सॉफ़्टवेयर को आवश्यक रूप से नई सुविधाओं के लिए अपडेट किया जा सकता है।
(व्यक्तिगत रूप से मैं ६- all परतों पर बहुत अधिक ध्यान नहीं दूंगा, उनके अलावा "सॉफ्टवेयर जो सत्र का उपयोग करता है"।)
इसके अलावा, महसूस करें कि यूनिकोड एक अमूर्त मानक है और नेटवर्क पर प्रसारित नहीं होता है - प्रोग्राम आमतौर पर विशिष्ट एन्कोडिंग, जैसे कि यूटीएफ -8 या यूटीएफ -16 भेजते हैं और प्राप्त करते हैं। इसलिए प्री-यूनिकोड कार्यक्रम में कहीं भी "आउट-ऑफ-रेंज" समस्या नहीं होगी, क्योंकि यह प्राप्त बाइट्स को इस तरह से व्याख्या नहीं करेगा।
प्रस्तुति में आमतौर पर कई व्यक्तिगत कार्य होते हैं, इसलिए जब मैं नीचे 'सॉफ़्टवेयर' कहता हूं, तो यह हर बार एक अलग घटक को संदर्भित कर सकता है। (उदाहरण के लिए, कार्यक्रम के आंतरिक प्रतिनिधित्व में UTF-8 की डिकोडिंग को libc, Pango द्वारा लेआउट, FreeType द्वारा फ़ॉन्ट रेंडरिंग द्वारा नियंत्रित किया जा सकता है।)
पहले डिकोडिंग आता है । तो एक कार्यक्रम क्या करता है अगर उसे UTF-8 संदेश प्राप्त होता है जो उसे समझ में नहीं आता है? आमतौर पर, अगर यह पता है कि डेटा पाठ है , तो इसे डिकोड करने के लिए यह किसी प्रकार के फ़ॉलबैक एन्कोडिंग का उपयोग करेगा। उदाहरण के लिए, यदि कोई पुराना इंटरनेट ईमेल प्रोग्राम MIME टाइप देखता है text/plain; charset=utf-8
, तो उसे पता चलेगा कि संदेश टेक्स्टुअल है, और इसके बाइट्स को ISO 8859-1 या Windows-1252 के रूप में व्याख्या करने का प्रयास करेगा, भले ही यह कचरा हो।
(जैसा कि ऐसा होता है, UTF-8 और ISO 8859 दोनों ASCII पर आधारित हैं, इसलिए कई यूरोपीय ग्रंथ वास्तव में आधे रास्ते में पढ़ने योग्य डिकोडिंग के परिणामस्वरूप होते हैं। उदाहरण के लिए विकिपीडिया Mojibake लेख देखें ।)
उस ने कहा, यह हमेशा काम नहीं करता है - कुछ प्रारूप दूसरों की तुलना में कठोर हैं। उदाहरण के लिए, यदि ASA.1 दस्तावेज़ में IA5String के बजाय UnicodeString है, तो पुराने कार्यक्रमों को यह पता नहीं चलेगा कि यह अभी भी पाठ या किसी अन्य प्रकार का डेटा है। इसलिए अगर कोई कोरियन कंपनी एसएसएल सर्टिफिकेट खरीदती है, तो कुछ पुराने ब्राउजर अपना नाम "संगठन: [अपरिचित]" बताएंगे।
फिर व्याख्या है। यदि सॉफ्टवेयर यूनिकोड के पुराने संस्करण का समर्थन करता है और अपनी ज्ञात सीमा के बाहर कोडपॉइंट्स के साथ पाठ प्राप्त करता है, तो यह तब तक कोई समस्या नहीं है जब तक वे स्क्रीन पर नहीं दिखाए जाते हैं - जिस बिंदु पर आप उनकी जगह " " प्रतिस्थापन प्रतीक देखेंगे।
बेशक, अगर आप उदाहरण के लिए टेक्स्ट एडिटर को सब कुछ बड़ा करने के लिए कहते हैं, तो वह आउट-ऑफ-रेंज वर्णों के साथ ऐसा करने में सक्षम नहीं होगा। लेकिन यह अभी भी काम करेगा।
(हाल ही में, कई "यूनिकोड-संगत" कार्यक्रमों और वेबसाइटों को यूसीएस -2 का आंतरिक रूप से उपयोग करने के लिए पाया गया (जो कि केवल यू + एफएफएफएफ तक जाता है)। यदि उन्हें यूटीएफ -16-एन्कोडेड पाठ ऊपर दिए गए कोडपॉइंट्स के साथ दिया गया है (जैसे कि फ़ूजी),। वे UTF-16 सरोगेट जोड़े की दो गैर-मान्यता प्राप्त कोडपॉइंट्स के रूप में व्याख्या करेंगे और "of" के बजाय " " दिखाएंगे।)
अंत में प्रदर्शित हो रहा है। यदि सॉफ़्टवेयर कोडकोड को डिकोड और मान्यता प्राप्त करता है, लेकिन इसमें वर्णों के लिए आवश्यक फोंट नहीं हैं , तो यह आमतौर पर एक प्लेसहोल्डर को भी आकर्षित करेगा। लिनक्स सॉफ्टवेयर आमतौर पर इसमें छोटे हेक्स नंबर (कोडपॉइंट नंबर) के साथ एक आयत खींचता है; macOS इसके बजाय एक विशेष फ़ॉलबैक फ़ॉन्ट का उपयोग करता है ; विंडोज पर आपको एक बॉक्स में प्रश्न चिह्न मिल सकता है।
अंत में, जब यह गैर-पाठ मीडिया (चित्र, वीडियो, ऑडियो) की बात आती है, तो प्रत्येक प्रारूप दूसरों से बहुत अलग होता है, इसलिए यदि यह मान्यता प्राप्त कार्यक्रम नहीं है तो बस एक प्लेसहोल्डर छोड़ दें और दिखाएं।