2009-03-31 10 views

उत्तर

180

एएनएसआई एन्कोडिंग एक सामान्य सामान्य शब्द है जो आमतौर पर विंडोज़ पर मानक कोड पेज को संदर्भित करने के लिए उपयोग किया जाता है। इसे पश्चिमी/यू.एस. पर Windows-1252 के रूप में अधिक उचित रूप से संदर्भित किया जाता है। सिस्टम। (यह अन्य सिस्टम पर कुछ अन्य Windows code pages का प्रतिनिधित्व कर सकता है।) यह अनिवार्य रूप से extension of the ASCII character set है जिसमें इसमें अतिरिक्त 128 वर्ण कोड वाले सभी ASCII वर्ण शामिल हैं। यह अंतर इस तथ्य के कारण है कि "एएनएसआई" एन्कोडिंग एएससीआईआई के रूप में 7-बिट की बजाय 8-बिट है (ASCII लगभग 0 -0 पर सेट के साथ लगभग 8-बिट बाइट्स के रूप में लगभग हमेशा एन्कोड किया जाता है)। इस एन्कोडिंग को आमतौर पर एएनएसआई के रूप में संदर्भित करने के स्पष्टीकरण के लिए आलेख देखें।

नाम "एएनएसआई" एक गलत नाम है, क्योंकि यह किसी भी वास्तविक एएनएसआई मानक के अनुरूप नहीं है, लेकिन नाम अटक गया है। एएनएसआई यूटीएफ -8 के समान नहीं है।

+27

एएनएसआई सिर्फ "मामूली" गलत नामक नहीं है, यह एक पूरी तरह से गलत नाम है। यह नाम स्पष्ट रूप से दर्शाता है कि जो कुछ भी संदर्भित करता है वह एक एएनएसआई मानक है, जो यह नहीं है; यह तथ्य का एक काला और सफेद मामला है। इसके साथ ही, यह इतना व्यापक रूप से उपयोग किया जाता है कि हम इसके साथ अटक गए हैं। –

+0

मैं संहिता पृष्ठ 437, नहीं विंडोज कोड पृष्ठ 1252. वापस किया जा रहा है जब एएनएसआई बुलेटिन बोर्ड प्रणाली के लिए बनाया ग्राफिक्स के रूप में करने के लिए भेजा एएनएसआई पता है, मैं काफी गारंटी मामला है कि कर सकते हैं। – lordscarlet

+0

@ लॉर्ड्सकारलेट: एएनएसआई ने उन्हें मानकीकृत नहीं किया है, लेकिन विंडोज -1252 सबसे नज़दीक है (कम से कम विंडोज़ पर), यह एक सुपरसैट के रूप में है। संदर्भ के लिए http://en.wikipedia.org/wiki/ANSI_codepage#ANSI देखें। – Noldorin

-3

एएनएसआई (उर्फ विंडोज़ -1252/WinLatin1) लैटिन वर्णमाला का एक वर्ण एन्कोडिंग, काफी ISO-8859-1 के समान है। आप it at Wikipedia का एक नज़र लेना चाहते हैं।

+5

यह सभी के लिए CP1252 नहीं है; जो इस क्षेत्र पर बहुत निर्भर करता है। – Joey

1

एकल-बाइट वर्णों का उपयोग करते समय, ASCII प्रारूप पहले 127 वर्णों को परिभाषित करता है। 128-255 के विस्तारित वर्णों को विभिन्न भाषाओं के लिए सीमित समर्थन की अनुमति देने के लिए विभिन्न एएनएसआई कोड पृष्ठों द्वारा परिभाषित किया गया है। एएनएसआई एन्कोडेड स्ट्रिंग को समझने के लिए, आपको यह पता होना चाहिए कि यह कौन सा कोड पेज उपयोग करता है।

10

ASCII 128 प्रतीकों के साथ एक 7 बिट कोड पेज को परिभाषित करता है। एएनएसआई इसे 8 बिट तक बढ़ाता है और प्रतीकों 128 से 255 के लिए कई अलग-अलग कोड पेज हैं।

नामांकन एएनएसआई सही नहीं है क्योंकि यह वास्तव में आईएसओ/आईईसी 885 9 मानक है जो इस कोड पृष्ठों को परिभाषित करता है। संदर्भ के लिए ISO/IEC 8859 देखें। आईएसओ/आईईसी 885 9 -16 में 16 कोड पेज आईएसओ/आईईसी 885 9 -1 हैं।

Windows-1252 फिर से मुख्य रूप से 159 विकिपीडिया के रेंज 128 में C1 control set की रेंज में कुछ संशोधन के साथ आईएसओ/आईईसी 8859-1 पर आधारित है कहा गया है कि विंडोज़ -1252 भी एक दूसरे के साथ ISO-8859-1 के रूप में संदर्भित किया जाता है आईएसओ और 885 9 के बीच हाइफ़न। (अविश्वसनीय! ऐसा कुछ कौन करता है?!?)

20

कड़ाई से बोलते हुए, एएनएसआई एन्कोडिंग जैसी कोई चीज़ नहीं है। अवधि एएनएसआई कई अलग अलग एनकोडिंग के लिए प्रयोग किया जाता है: (Win32 एपीआई शब्दावली में)

  1. आईएसओ 8859-1
  2. विंडोज CP1252
  3. वर्तमान प्रणाली एक Windows मशीन पर एन्कोडिंग।
+0

1. गलत है, 2 एक "पश्चिमी पीसी" पर सही है केवल, 3 सही –

+5

@WernfriedDomscheit तीनों गलत हो रहा है। एएनएसआई किसी भी एन्कोडिंग को मानकीकृत नहीं करता है। लेकिन दोनों तीन एन्कोडिंग को कभी-कभी एएनएसआई कहा जाता है। –

2

मूल रूप से "एएनएसआई" विंडोज पर विरासत कोडपृष्ठ को संदर्भित करता है। इस विषय पर an article by Raymond Chen भी देखें। पहले 127 वर्ण अधिकांश कोड पृष्ठों में ASCII के समान होते हैं, हालांकि ऊपरी वर्ण भिन्न होते हैं।

हालांकि, एएनएसआई नहीं स्वचालित रूप से CP1252 या लैटिन 1.

सभी भ्रम मतलब के होते हुए भी आप बस ऐसे मुद्दों आजकल बचने और यूनिकोड का उपयोग करना चाहिए है।

1

मुझे याद है जब "एएनएसआई" पाठ छद्म वीटी -100 एस्केप कोड को एएनएसआई के माध्यम से डीओएस में उपयोग करने योग्य कहा जाता है।SYS ड्राइवर स्ट्रीमिंग पाठ के प्रवाह को बदलने के लिए .... शायद क्या नहीं आप की बात कर रहे हैं, लेकिन देखना http://en.wikipedia.org/wiki/ANSI_escape_code

44

तकनीकी तौर पर, एएनएसआई US-ASCII के रूप में ही किया जाना चाहिए अगर यह होता है। यह एएनएसआई एक्स 3.4 मानक को संदर्भित करता है, जो कि ASCII के ANSI संगठन के अनुमोदित संस्करण है। शीर्ष-बिट-सेट वर्णों का उपयोग ASCII/ANSI में परिभाषित नहीं किया गया है क्योंकि यह 7-बिट वर्ण सेट है।

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

अमेरिका और पश्चिमी यूरोपीय डिफ़ॉल्ट सेटिंग्स पर, विंडोज कोड पेज 1252. करने के लिए "एएनएसआई" नक्शे यह नहीं ISO-8859-1 के रूप में ही (हालांकि यह काफी समान है) है। अन्य मशीनों पर यह कुछ भी हो सकता है। यह "एएनएसआई" को बाहरी एन्कोडिंग पहचानकर्ता के रूप में पूरी तरह से बेकार बनाता है।

9

एक बार माइक्रोसॉफ्ट पर, हर किसी की तरह, 7 बिट वर्ण सेट का इस्तेमाल किया है, और वे अपने स्वयं का आविष्कार किया है, जब यह उन्हें अनुकूल है, हालांकि वे एक कोर सबसेट के रूप में ASCII रखा। तब उन्हें एहसास हुआ कि दुनिया 8-बिट एन्कोडिंग पर चली गई है और आईएसओ -885 9 परिवार जैसे अंतर्राष्ट्रीय मानक थे। उन दिनों में, यदि आप एक अंतरराष्ट्रीय मानक को पकड़ प्राप्त करना चाहता था और आप अमेरिका में रहते थे, तो आप इसे अमेरिकी राष्ट्रीय मानक संस्थान, एएनएसआई, जो अपने खुद के ब्रांडिंग और संख्या (है कि क्योंकि अमेरिकी सरकार चाहता है के साथ अंतरराष्ट्रीय मानकों पुनर्प्रकाशित से खरीदा अमेरिकी मानकों के अनुरूप, अंतर्राष्ट्रीय मानकों नहीं)। तो माइक्रोसॉफ्ट की आईएसओ -885 9 की प्रतिलिपि ने कवर पर "एएनएसआई" कहा। और क्योंकि उन दिनों में माइक्रोसॉफ्ट का मानकों के लिए बहुत उपयोग नहीं किया गया था, उन्हें एहसास नहीं हुआ कि एएनएसआई ने कई अन्य मानकों को भी प्रकाशित किया है। इसलिए उन्होंने आईएसओ -885 9 परिवार (और वे संस्करण जिन्हें उन्होंने खोजा था, क्योंकि वे वास्तव में उन दिनों में मानकों को नहीं समझते थे) में मानकों को संदर्भित करते हैं, "एएनएसआई", और इसे माइक्रोसॉफ्ट में अपना रास्ता मिला उपयोगकर्ता दस्तावेज और इसलिए उपयोगकर्ता समुदाय में। यह लगभग 30 साल पहले था, लेकिन आप अभी भी कभी-कभी नाम सुनते हैं।

+0

मानकों उद्योग की सामग्री थे इसलिए प्रोग्रामर मानकों के लिए नए थे क्योंकि यह एक नया उद्योग था? – GameDeveloper

+1

माइक्रोसॉफ्ट की स्थापना के समय तक यह एक नया उद्योग नहीं था। –

1

शायद ज़रुरत पड़े अपने पीसी एक "पश्चिमी" पीसी नहीं है और आप नहीं जानते कि जो कोड पेज प्रयोग किया जाता है, तो आप इस पेज पर एक नजर है कर सकते हैं: National Language Support (NLS) API Reference

या फिर आप अपने रजिस्ट्री क्वेरी कर सकते हैं:

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:\> 
संबंधित मुद्दे