ANSI एन्कोडिंग प्रारूप क्या है? क्या यह एक सिस्टम डिफ़ॉल्ट प्रारूप है? किस तरह से यह ASCII से अलग है?
ANSI एन्कोडिंग प्रारूप क्या है? क्या यह एक सिस्टम डिफ़ॉल्ट प्रारूप है? किस तरह से यह ASCII से अलग है?
जवाबों:
ANSI एन्कोडिंग एक सामान्य सामान्य शब्द है जिसका उपयोग किसी सिस्टम पर मानक कोड पेज, आमतौर पर विंडोज के लिए किया जाता है। यह पश्चिमी / अमेरिकी प्रणालियों पर विंडोज -1252 के रूप में अधिक उचित रूप से संदर्भित है । (यह अन्य प्रणालियों पर कुछ अन्य विंडोज कोड पृष्ठों का प्रतिनिधित्व कर सकता है ।) यह अनिवार्य रूप से ASCII वर्ण का एक विस्तार है जिसमें यह शामिल है कि इसमें अतिरिक्त 128 वर्ण कोड के साथ सभी ASCII वर्ण शामिल हैं। यह अंतर इस तथ्य के कारण है कि एएससीआईआई के रूप में "एएनएसआई" एन्कोडिंग 7-बिट के बजाय 8-बिट है (एएससीआईआई आजकल लगभग हमेशा एन्कोड किया गया है क्योंकि एमएसबी सेट 0 के साथ 8-बिट बाइट्स के रूप में )। इस एन्कोडिंग को आमतौर पर ANSI क्यों कहा जाता है, इस स्पष्टीकरण के लिए लेख देखें।
"एएनएसआई" नाम एक मिथ्या नाम है, क्योंकि यह किसी भी वास्तविक एएनएसआई मानक के अनुरूप नहीं है, लेकिन नाम अटक गया है। ANSI, UTF-8 के समान नहीं है।
windows-1254
।
तकनीकी रूप से, ANSI US-ASCII के समान होना चाहिए। यह एएनएसआई X3.4 मानक को संदर्भित करता है, जो कि केवल एएनएसआई संगठन के एएससीआईआई के अनुसमर्थित संस्करण है। शीर्ष-बिट-सेट वर्णों का उपयोग ASCII / ANSI में परिभाषित नहीं है क्योंकि यह 7-बिट वर्ण सेट है।
हालाँकि, DOS द्वारा और उसके बाद विंडोज समुदाय के शब्द के दुरुपयोग के वर्षों ने "जो भी मशीन का उपयोग किया जा रहा है उसके सिस्टम कोडपेज" के रूप में इसका व्यावहारिक अर्थ छोड़ दिया है। सिस्टम कोडपेज को कभी-कभी 'mbcs' के रूप में भी जाना जाता है, क्योंकि पूर्वी एशियाई प्रणालियों पर एक बहु-बाइट-प्रति-वर्ण एन्कोडिंग हो सकता है। कुछ कोड पृष्ठ शीर्ष-बिट-स्पष्ट बाइट्स का उपयोग मल्टीबाइट अनुक्रम में बाइट्स के रूप में भी कर सकते हैं, इसलिए यह सादे ASCII के साथ भी सख्त संगत नहीं है ... लेकिन फिर भी, इसे अभी भी "ANSI" कहा जाता है।
यूएस और पश्चिमी यूरोपीय डिफ़ॉल्ट सेटिंग्स पर, "ANSI" विंडोज़ कोड पृष्ठ 1252 पर मैप करता है। यह ISO-8859-1 (हालांकि यह काफी समान है) के समान नहीं है। अन्य मशीनों पर यह कुछ और भी हो सकता है। यह "ANSI" बाहरी एन्कोडिंग पहचानकर्ता के रूप में पूरी तरह से बेकार बनाता है।
कड़े शब्दों में, एएनएसआई एन्कोडिंग जैसी कोई चीज नहीं है। बोलचाल की भाषा में शब्द ANSI का उपयोग कई अलग-अलग एन्कोडिंग के लिए किया जाता है:
एक बार माइक्रोसॉफ्ट ने, बाकी सभी की तरह, 7-बिट कैरेक्टर सेट का इस्तेमाल किया, और जब उन्होंने इसे अनुकूल किया, तब उन्होंने खुद का आविष्कार किया, हालांकि उन्होंने ASCII को एक कोर सबसेट के रूप में रखा। तब उन्हें एहसास हुआ कि दुनिया 8-बिट एन्कोडिंग में चली गई थी और आईएसओ-8859 परिवार जैसे अंतरराष्ट्रीय मानक थे। उन दिनों में, यदि आप एक अंतर्राष्ट्रीय मानक पकड़ना चाहते थे और आप अमेरिका में रहते थे, तो आपने इसे अमेरिकी राष्ट्रीय मानक संस्थान, एएनएसआई से खरीदा था, जिन्होंने अपने स्वयं के ब्रांडिंग और संख्याओं के साथ अंतर्राष्ट्रीय मानकों को पुनः प्रकाशित किया (ऐसा इसलिए है क्योंकि अमेरिकी सरकार चाहती है अमेरिकी मानकों के अनुरूप, अंतर्राष्ट्रीय मानक नहीं)। इसलिए Microsoft की ISO-8859 की प्रति ने कवर पर "ANSI" कहा। और क्योंकि Microsoft उन दिनों मानकों के बहुत अभ्यस्त नहीं थे, इसलिए उन्होंने ' टी का एहसास है कि एएनएसआई ने बहुत सारे अन्य मानकों को भी प्रकाशित किया। इसलिए उन्होंने ISO-8859 परिवार में मानकों का उल्लेख किया (और उनके द्वारा आविष्कार किए गए वेरिएंट, क्योंकि वे उन दिनों में मानकों को वास्तव में समझ नहीं पाए थे), "ANSI" नाम से, और यह Microsoft में अपना रास्ता खोज लिया। उपयोगकर्ता प्रलेखन और इसलिए उपयोगकर्ता समुदाय में। यह लगभग 30 साल पहले था, लेकिन आप अभी भी कभी-कभी नाम सुनते हैं।
ASCII सिर्फ 128 प्रतीकों के साथ 7 बिट कोड पेज को परिभाषित करता है। एएनएसआई इसका विस्तार 8 बिट तक करता है और प्रतीकों के 128 से 255 के लिए कई अलग-अलग कोड पृष्ठ हैं।
नामकरण ANSI सही नहीं है क्योंकि यह वास्तव में ISO / IEC 8859 मानदंड है जो इस कोड पृष्ठों को परिभाषित करता है। आईएसओ / आईईसी 8859 देखेंसंदर्भ के लिए । 16 कोड पृष्ठ ISO / IEC 8859-1 से ISO / IEC 8859-16 हैं।
Windows-1252 फिर से ISO / IEC 8859-1 पर आधारित है, जिसमें मुख्य रूप से 128 में 159 की सीमा में C1 नियंत्रण की सीमा में कुछ संशोधन किए गए हैं। विकिपीडिया बताता है कि Windows-1252 को एक दूसरे के साथ ISO-8859-1 भी कहा जाता है। आईएसओ और 8859 के बीच हाइफ़न। (अविश्वसनीय? कौन ऐसा कुछ करता है?!?)
मूल रूप से "एएनएसआई" विंडोज पर विरासत कोडपेज को संदर्भित करता है। इस विषय पर रेमंड चेन का एक लेख भी देखें :
इसका स्रोत इस तथ्य से आता है कि विंडोज कोड पृष्ठ 1252 मूल रूप से एक एएनएसआई ड्राफ्ट पर आधारित था, जो आईएसओ मानक 8859-1 बन गया।
पहले 127 अक्षर अधिकांश कोड पृष्ठों में ASCII के समान हैं, हालांकि ऊपरी वर्ण भिन्न होते हैं।
हालांकि, एएनएसआई करता नहीं स्वचालित रूप से CP1252 या लैटिन 1 मतलब है।
सभी भ्रम के बावजूद आपको आजकल ऐसे मुद्दों से बचना चाहिए और यूनिकोड का उपयोग करना चाहिए।
यदि आपका पीसी "पश्चिमी" पीसी नहीं है और आपको पता नहीं है कि कौन सा कोड पृष्ठ उपयोग किया जाता है, तो आप इस पृष्ठ पर नज़र डाल सकते हैं: राष्ट्रीय भाषा समर्थन (एनएलएस) एपीआई संदर्भ
[माइक्रोसॉफ्ट ने इस संदर्भ को हटा दिया, इसे वेब-आर्काइव नेशनल लैंग्वेज सपोर्ट (एनएलएस) एपीआई संदर्भ के रूप में लें
या आप अपनी रजिस्ट्री को क्वेरी कर सकते हैं:
C:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
ACP REG_SZ 1252
End of search: 1 match(es) found.
C:\>
एकल-बाइट वर्णों का उपयोग करते समय, ASCII प्रारूप पहले 127 वर्णों को परिभाषित करता है। 128-255 से विस्तारित वर्णों को अन्य भाषाओं के लिए सीमित समर्थन की अनुमति देने के लिए विभिन्न एएनएसआई कोड पृष्ठों द्वारा परिभाषित किया गया है। ANSI एन्कोडेड स्ट्रिंग की समझ बनाने के लिए, आपको यह जानना होगा कि यह किस कोड पेज का उपयोग करता है।
मुझे याद है कि जब "ANSI" टेक्स्ट ने ANSI.SYS ड्राइवर के माध्यम से DOS में प्रयोग किए जाने वाले छद्म VT-100 से बचने वाले कोड को स्ट्रीमिंग टेक्स्ट के प्रवाह को बदलने के लिए भेजा .... शायद आप जो नहीं देख रहे हैं लेकिन अगर यह http देखें : //en.wikipedia.org/wiki/ANSI_escape_code
ANSI (उर्फ विंडोज -1252 / WinLatin1) लैटिन वर्णमाला का एक चरित्र एन्कोडिंग है, जो आईएसओ-8859-1 के समान है । आप विकिपीडिया पर इसका जायजा लेना चाहते हैं ।