एस्केप कैरेक्टर: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{short description |Character used to quote special-purpose characters, e.g. '\'}}
{{short description |Character used to quote special-purpose characters, e.g. '\'}}
{{Self reference|For escaping markup in Wikipedia edits, see [[WP:NOWIKI]]}}
{{Self reference|विकिपीडिया संपादनों में मार्कअप से बचने के लिए देखें [[डब्ल्यूपी: नोविकी]]}}
{{Distinguish|control character|escape sequence|Escape key}}
{{Distinguish|नियंत्रण कैरेक्टर|एस्केप का क्रम|एस्केप कुंजी}}
[[कम्प्यूटिंग]] और [[दूरसंचार]] में, एस्केप कैरेक्टर [[चरित्र (कंप्यूटिंग)|कैरेक्टर (कंप्यूटिंग)]] है जो कैरेक्टर अनुक्रम में निम्नलिखित वर्णों पर वैकल्पिक व्याख्या का आह्वान करता है। एस्केप कैरेक्टर [[मेटाचैकर]] का विशेष मामला है। आम तौर पर, कुछ बचने वाला कैरेक्टर है या नहीं इसका निर्णय संदर्भ पर निर्भर करता है।
[[कम्प्यूटिंग]] और [[दूरसंचार]] में, एस्केप कैरेक्टर एक ऐसा [[चरित्र (कंप्यूटिंग)|कैरेक्टर (कंप्यूटिंग)]] है जो कैरेक्टर अनुक्रम में निम्नलिखित कैरेक्टर्स पर वैकल्पिक व्याख्या का आह्वान करता है। एक एस्केप कैरेक्टर [[मेटाचैकर]] का विशेष मामला है। सामान्यतः, कुछ बचने वाला कैरेक्टर है या नहीं इसका निर्णय संदर्भ पर निर्भर करता है।


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


== परिभाषा ==
== परिभाषा ==
एस्केप कैरेक्टर का अपना अर्थ नहीं हो सकता है, इसलिए सभी [[बचने का क्रम]] दो या दो से अधिक कैरेक्टर के होते हैं।
एस्केप कैरेक्टर का अपना अर्थ नहीं हो सकता है, इसलिए सभी [[बचने का क्रम]] दो या दो से अधिक कैरेक्टर के होते हैं।


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


एस्केप सीक्वेंस के कार्यों में शामिल हैं:
एस्केप अनुक्रम के कार्यों में शामिल हैं:


* सिंटैक्टिक इकाई को एनकोड करने के लिए, जैसे डिवाइस कमांड या विशेष डेटा, जिसे सीधे वर्णमाला द्वारा प्रदर्शित नहीं किया जा सकता है।
* सिंटैक्टिक इकाई को एनकोड करने के लिए, जैसे डिवाइस कमांड या विशेष डेटा, जिसे सीधे वर्णमाला द्वारा प्रदर्शित नहीं किया जा सकता है।
* पात्रों का प्रतिनिधित्व करने के लिए, कैरेक्टर उद्धरण के रूप में संदर्भित, जिसे वर्तमान संदर्भ में टाइप नहीं किया जा सकता है, या अवांछित व्याख्या होगी। इस मामले में, एस्केप सीक्वेंस डिग्राफ (कंप्यूटिंग) है जिसमें एस्केप कैरेक्टर और उद्धृत कैरेक्टर शामिल है।
* पात्रों का प्रतिनिधित्व करने के लिए, कैरेक्टर उद्धरण के रूप में संदर्भित, जिसे वर्तमान संदर्भ में टाइप नहीं किया जा सकता है, या अवांछित व्याख्या होगी। इस मामले में, एस्केप अनुक्रम डिग्राफ (कंप्यूटिंग) है जिसमें एस्केप कैरेक्टर और उद्धृत कैरेक्टर शामिल है।


=== नियंत्रण कैरेक्टर ===
=== नियंत्रण कैरेक्टर ===
आम तौर पर, भागने वाला कैरेक्टर (डिवाइस) नियंत्रण वर्णों का विशेष मामला नहीं होता है, न ही इसके विपरीत। अगर हम नियंत्रण वर्णों को गैर-ग्राफ़िक वर्ण के रूप में परिभाषित करते हैं, या आउटपुट डिवाइस (जैसे [[संगणक मुद्रक]] या [[पाठ टर्मिनल]]) के लिए विशेष अर्थ रखते हैं तो इस डिवाइस के लिए कोई भी बचने वाला कैरेक्टर नियंत्रण है। लेकिन प्रोग्रामिंग में उपयोग किए जाने वाले एस्केप वर्ण (जैसे [[बैकस्लैश]], \) ग्राफ़िक हैं, इसलिए नियंत्रण वर्ण नहीं हैं। इसके विपरीत [[ASCII]] नियंत्रण वर्णों के अधिकांश (लेकिन सभी नहीं) अलगाव में कुछ नियंत्रण कार्य करते हैं, इसलिए वे कैरेक्टरों से नहीं बचते हैं।
सामान्यतः, भागने वाला कैरेक्टर (डिवाइस) नियंत्रण कैरेक्टर्स का विशेष मामला नहीं होता है, न ही इसके विपरीत। अगर हम नियंत्रण कैरेक्टर्स को गैर-ग्राफ़िक वर्ण के रूप में परिभाषित करते हैं, या आउटपुट डिवाइस (जैसे [[संगणक मुद्रक]] या [[पाठ टर्मिनल]]) के लिए विशेष अर्थ रखते हैं तो इस डिवाइस के लिए कोई भी बचने वाला कैरेक्टर नियंत्रण है। लेकिन प्रोग्रामिंग में उपयोग किए जाने वाले एस्केप वर्ण (जैसे [[बैकस्लैश]], \) ग्राफ़िक हैं, इसलिए नियंत्रण वर्ण नहीं हैं। इसके विपरीत [[ASCII]] नियंत्रण कैरेक्टर्स के अधिकांश (लेकिन सभी नहीं) अलगाव में कुछ नियंत्रण कार्य करते हैं, इसलिए वे कैरेक्टरों से नहीं बचते हैं।


कई प्रोग्रामिंग भाषाओं में, एस्केप कैरेक्टर कुछ एस्केप सीक्वेंस भी बनाता है जिसे कंट्रोल कैरेक्टर कहा जाता है। उदाहरण के लिए, [[लाइन ब्रेक (कंप्यूटिंग)]] का एस्केप सीक्वेंस होता है {{code|\n}}.
कई प्रोग्रामिंग भाषाओं में, एस्केप कैरेक्टर कुछ एस्केप अनुक्रम भी बनाता है जिसे कंट्रोल कैरेक्टर कहा जाता है। उदाहरण के लिए, [[लाइन ब्रेक (कंप्यूटिंग)]] का एस्केप अनुक्रम होता है {{code|\n}}.


== उदाहरण ==
== उदाहरण ==
Line 39: Line 39:
ध्यान दें कि {{code|\v}} और {{code|\0}} JSON स्ट्रिंग्स में एस्केप की अनुमति नहीं है।
ध्यान दें कि {{code|\v}} और {{code|\0}} JSON स्ट्रिंग्स में एस्केप की अनुमति नहीं है।
उदाहरण कोड: <वाक्यविन्यास लैंग = जावास्क्रिप्ट>
उदाहरण कोड: <वाक्यविन्यास लैंग = जावास्क्रिप्ट>
कंसोल.लॉग ( \\n \n का उपयोग \\n पंक्ति नीचे करने के बाद वर्णों को स्थानांतरित कर देगा)
कंसोल.लॉग ( \\n \n का उपयोग \\n पंक्ति नीचे करने के बाद कैरेक्टर्स को स्थानांतरित कर देगा)
कंसोल.लॉग ( \\t \t का उपयोग करके वर्णों को \\t टैब लंबाई के बाद दाईं ओर स्थानांतरित करें)
कंसोल.लॉग ( \\t \t का उपयोग करके कैरेक्टर्स को \\t टैब लंबाई के बाद दाईं ओर स्थानांतरित करें)
कंसोल.लॉग ( \\r \r का उपयोग कैरिज रिटर्न की नकल करेगा, जिसका अर्थ है कि पंक्ति की शुरुआत में स्थानांतरित करना) // कुछ टर्मिनलों पर स्क्रीन को साफ़ करने के लिए उपयोग किया जा सकता है। विंडोज़ अकेले \n के बजाय \r\n का उपयोग करता है
कंसोल.लॉग ( \\r \r का उपयोग कैरिज रिटर्न की नकल करेगा, जिसका अर्थ है कि पंक्ति की शुरुआत में स्थानांतरित करना) // कुछ टर्मिनलों पर स्क्रीन को साफ़ करने के लिए उपयोग किया जा सकता है। विंडोज़ अकेले \n के बजाय \r\n का उपयोग करता है
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


=== ASCII एस्केप कैरेक्टर ===
=== ASCII एस्केप कैरेक्टर ===
ASCII एस्केप कैरेक्टर ([[अष्टभुजाकार]]: {{code|\033}}, [[हेक्साडेसिमल]]: {{code|\x1B}}, या {{code|^[}}, या, दशमलव में, {{code|27}}) का उपयोग कई आउटपुट डिवाइसों में वर्णों की श्रृंखला शुरू करने के लिए किया जाता है जिसे कंट्रोल सीक्वेंस या एस्केप सीक्वेंस कहा जाता है। आमतौर पर, एस्केप करैक्टर को डिवाइस को सचेत करने के लिए पहले इस तरह के क्रम में भेजा गया था कि निम्नलिखित कैरेक्टर को सादे कैरेक्टर के बजाय कंट्रोल सीक्वेंस के रूप में व्याख्यायित किया जाना था, फिर या अधिक कैरेक्टर कुछ विस्तृत कार्रवाई निर्दिष्ट करने के लिए अनुसरण करेंगे, जिसके बाद उपकरण सामान्य रूप से वर्णों की व्याख्या करने के लिए वापस जाएगा। उदाहरण के लिए, का क्रम {{code|^[}}, उसके बाद प्रिंट करने योग्य पात्र {{code|[2;10H}}, [[डिजिटल उपकरण निगम]] [[VT102]] टर्मिनल को अपने [[कर्सर (कंप्यूटर)]] को स्क्रीन की दूसरी पंक्ति के 10वें सेल में ले जाने का कारण बनेगा। इसे बाद में ANSI X3.64 मानक द्वारा कवर किए गए ANSI एस्केप कोड में विकसित किया गया था। एस्केप कैरेक्टर [[हेवलेट पैकर्ड]] [[प्रिंटर कमांड लैंग्वेज]] में प्रत्येक कमांड अनुक्रम भी शुरू करता है।
ASCII एस्केप कैरेक्टर ([[अष्टभुजाकार]]: {{code|\033}}, [[हेक्साडेसिमल]]: {{code|\x1B}}, या {{code|^[}}, या, दशमलव में, {{code|27}}) का उपयोग कई आउटपुट डिवाइसों में कैरेक्टर्स की श्रृंखला शुरू करने के लिए किया जाता है जिसे कंट्रोल अनुक्रम या एस्केप अनुक्रम कहा जाता है। सामान्यतः, एस्केप करैक्टर को डिवाइस को सचेत करने के लिए पहले इस तरह के क्रम में भेजा गया था कि निम्नलिखित कैरेक्टर को सादे कैरेक्टर के बजाय कंट्रोल अनुक्रम के रूप में व्याख्यायित किया जाना था, फिर या अधिक कैरेक्टर कुछ विस्तृत कार्रवाई निर्दिष्ट करने के लिए अनुसरण करेंगे, जिसके बाद उपकरण सामान्य रूप से कैरेक्टर्स की व्याख्या करने के लिए वापस जाएगा। उदाहरण के लिए, का क्रम {{code|^[}}, उसके बाद प्रिंट करने योग्य पात्र {{code|[2;10H}}, [[डिजिटल उपकरण निगम]] [[VT102]] टर्मिनल को अपने [[कर्सर (कंप्यूटर)]] को स्क्रीन की दूसरी पंक्ति के 10वें सेल में ले जाने का कारण बनेगा। इसे बाद में ANSI X3.64 मानक द्वारा कवर किए गए ANSI एस्केप कोड में विकसित किया गया था। एस्केप कैरेक्टर [[हेवलेट पैकर्ड]] [[प्रिंटर कमांड लैंग्वेज]] में प्रत्येक कमांड अनुक्रम भी शुरू करता है।


एस्केप कैरेक्टर शब्द का प्रारंभिक संदर्भ [[बॉब बेमर]] के आईबीएम तकनीकी प्रकाशनों में पाया जाता है, जिन्हें ASCII कैरेक्टर सेट पर अपने काम के दौरान इस तंत्र का आविष्कार करने का श्रेय दिया जाता है।<ref>{{cite web|url=http://www.bobbemer.com/ESCAPE.HTM|title=How Bob Bemer Invented the ESCAPE Sequence and Key|first=Bob|last=Bemer|website=www.bobbemer.com|access-date=22 March 2018|archive-date=4 January 2018|archive-url=https://web.archive.org/web/20180104163857/http://www.bobbemer.com/ESCAPE.HTM|url-status=dead}}</ref>
एस्केप कैरेक्टर शब्द का प्रारंभिक संदर्भ [[बॉब बेमर]] के आईबीएम तकनीकी प्रकाशनों में पाया जाता है, जिन्हें ASCII कैरेक्टर सेट पर अपने काम के दौरान इस तंत्र का आविष्कार करने का श्रेय दिया जाता है।<ref>{{cite web|url=http://www.bobbemer.com/ESCAPE.HTM|title=How Bob Bemer Invented the ESCAPE Sequence and Key|first=Bob|last=Bemer|website=www.bobbemer.com|access-date=22 March 2018|archive-date=4 January 2018|archive-url=https://web.archive.org/web/20180104163857/http://www.bobbemer.com/ESCAPE.HTM|url-status=dead}}</ref>
[[एस्केप कुंजी]] आमतौर पर मानक पीसी कीबोर्ड पर पाई जाती है। हालांकि, यह आमतौर पर पीडीए और अन्य उपकरणों के लिए कीबोर्ड से अनुपस्थित है जो मुख्य रूप से एएससीआईआई संचार के लिए डिज़ाइन नहीं किए गए हैं। DEC [[VT220]] श्रृंखला कुछ लोकप्रिय कीबोर्ड में से थी जिसमें मुख्य कीपैड के ऊपर किसी कुंजी का उपयोग करने के बजाय समर्पित Esc कुंजी नहीं थी। 1970-1980 के दशक के उपयोगकर्ता इंटरफेस में इस कुंजी को एस्केप कैरेक्टर के रूप में उपयोग करना असामान्य नहीं था, लेकिन आधुनिक डेस्कटॉप कंप्यूटरों में इस तरह के उपयोग को छोड़ दिया जाता है। कभी-कभी कुंजी की पहचान [[AltMode]] (वैकल्पिक मोड के लिए) से की जाती थी। बिना किसी समर्पित कुंजी के भी, टाइप करके एस्केप कैरेक्टर कोड उत्पन्न किया जा सकता है {{code|[}} जबकि साथ नीचे पकड़े हुए {{Key press|[[Control key|Ctrl]]}}.
[[एस्केप कुंजी]] सामान्यतः मानक पीसी कीबोर्ड पर पाई जाती है। हालांकि, यह सामान्यतः पीडीए और अन्य उपकरणों के लिए कीबोर्ड से अनुपस्थित है जो मुख्य रूप से एएससीआईआई संचार के लिए डिज़ाइन नहीं किए गए हैं। DEC [[VT220]] श्रृंखला कुछ लोकप्रिय कीबोर्ड में से थी जिसमें मुख्य कीपैड के ऊपर किसी कुंजी का उपयोग करने के बजाय समर्पित Esc कुंजी नहीं थी। 1970-1980 के दशक के उपयोगकर्ता इंटरफेस में इस कुंजी को एस्केप कैरेक्टर के रूप में उपयोग करना असामान्य नहीं था, लेकिन आधुनिक डेस्कटॉप कंप्यूटरों में इस तरह के उपयोग को छोड़ दिया जाता है। कभी-कभी कुंजी की पहचान [[AltMode]] (वैकल्पिक मोड के लिए) से की जाती थी। बिना किसी समर्पित कुंजी के भी, टाइप करके एस्केप कैरेक्टर कोड उत्पन्न किया जा सकता है {{code|[}} जबकि साथ नीचे पकड़े हुए {{Key press|[[Control key|Ctrl]]}}.


=== प्रोग्रामिंग और डेटा प्रारूप ===
=== प्रोग्रामिंग और डेटा प्रारूप ===
कई आधुनिक [[प्रोग्रामिंग भाषा]]एं दोहरे-उद्धरण वर्ण निर्दिष्ट करती हैं ({{code|"}}) स्ट्रिंग शाब्दिक के लिए सीमांकक के रूप में। बैकस्लैश ({{code|\}}) एस्केप कैरेक्टर आमतौर पर स्ट्रिंग लिटरल के अंदर डबल-कोट्स को शामिल करने के दो तरीके प्रदान करता है, या तो स्ट्रिंग में एम्बेडेड डबल-कोट कैरेक्टर के अर्थ को संशोधित करके ({{code|\"}} बन जाता है {{code|"}}), या दोहरे-उद्धरण वर्ण के हेक्साडेसिमल मान सहित वर्णों के अनुक्रम के अर्थ को संशोधित करके ({{code|\x22}} बन जाता है {{code|"}}).
कई आधुनिक [[प्रोग्रामिंग भाषा]]एं दोहरे-उद्धरण वर्ण निर्दिष्ट करती हैं ({{code|"}}) स्ट्रिंग शाब्दिक के लिए सीमांकक के रूप में। बैकस्लैश ({{code|\}}) एस्केप कैरेक्टर सामान्यतः स्ट्रिंग लिटरल के अंदर डबल-कोट्स को शामिल करने के दो तरीके प्रदान करता है, या तो स्ट्रिंग में एम्बेडेड डबल-कोट कैरेक्टर के अर्थ को संशोधित करके ({{code|\"}} बन जाता है {{code|"}}), या दोहरे-उद्धरण वर्ण के हेक्साडेसिमल मान सहित कैरेक्टर्स के अनुक्रम के अर्थ को संशोधित करके ({{code|\x22}} बन जाता है {{code|"}}).


C (प्रोग्रामिंग लैंग्वेज), [[C++]], Java (प्रोग्रामिंग लैंग्वेज), और [[रूबी (प्रोग्रामिंग भाषा)]] सभी समान दो बैकस्लैश एस्केप स्टाइल की अनुमति देते हैं। [[परिशिष्ट भाग]] भाषा और माइक्रोसॉफ्ट [[रिच टेक्स्ट फ़ॉर्मैट]] भी बैकस्लैश एस्केप का उपयोग करते हैं। उद्धृत-मुद्रित करने योग्य एन्कोडिंग बराबर चिह्न का उपयोग बचने वाले वर्ण के रूप में करता है।
C (प्रोग्रामिंग लैंग्वेज), [[C++]], Java (प्रोग्रामिंग लैंग्वेज), और [[रूबी (प्रोग्रामिंग भाषा)]] सभी समान दो बैकस्लैश एस्केप स्टाइल की अनुमति देते हैं। [[परिशिष्ट भाग]] भाषा और माइक्रोसॉफ्ट [[रिच टेक्स्ट फ़ॉर्मैट]] भी बैकस्लैश एस्केप का उपयोग करते हैं। उद्धृत-मुद्रित करने योग्य एन्कोडिंग बराबर चिह्न का उपयोग बचने वाले वर्ण के रूप में करता है।


[[URL]] और [[URI]] प्रतिशत चिह्न का उपयोग करते हैं। गैर-ASCII वर्णों के लिए विशेष अर्थ वाले वर्णों को उद्धृत करने के लिए%-प्रतिशत-एन्कोडिंग। [[एम्परसेंड]] ({{code|&}}) कैरेक्टर को [[एसजीएमएल]] और [[एचटीएमएल]] और [[एक्सएमएल]] जैसे व्युत्पन्न प्रारूपों में बचने वाले कैरेक्टर के रूप में माना जा सकता है।
[[URL]] और [[URI]] प्रतिशत चिह्न का उपयोग करते हैं। गैर-ASCII कैरेक्टर्स के लिए विशेष अर्थ वाले कैरेक्टर्स को उद्धृत करने के लिए%-प्रतिशत-एन्कोडिंग। [[एम्परसेंड]] ({{code|&}}) कैरेक्टर को [[एसजीएमएल]] और [[एचटीएमएल]] और [[एक्सएमएल]] जैसे व्युत्पन्न प्रारूपों में बचने वाले कैरेक्टर के रूप में माना जा सकता है।


कुछ प्रोग्रामिंग लैंग्वेज विशेष वर्णों को शाब्दिक रूप से प्रस्तुत करने के अन्य तरीके भी प्रदान करती हैं, बिना एस्केप कैरेक्टर की आवश्यकता के (देखें उदाहरण के लिए सीमांकक# परिसीमन टक्कर)।
कुछ प्रोग्रामिंग लैंग्वेज विशेष कैरेक्टर्स को शाब्दिक रूप से प्रस्तुत करने के अन्य तरीके भी प्रदान करती हैं, बिना एस्केप कैरेक्टर की आवश्यकता के (देखें उदाहरण के लिए सीमांकक# परिसीमन टक्कर)।


=== संचार प्रोटोकॉल ===
=== संचार प्रोटोकॉल ===
Line 76: Line 76:


=== विंडोज कमांड प्रॉम्प्ट ===
=== विंडोज कमांड प्रॉम्प्ट ===
Cmd.exe|Windows कमांड-लाइन दुभाषिया [[कैरट]] वर्ण का उपयोग करता है ({{code|^}}) विशेष अर्थ वाले आरक्षित वर्णों से बचने के लिए (विशेष रूप से: {{code|&}}, {{code|<nowiki>|</nowiki>}}, {{code|(}}, {{code|)}}, {{code|<}}, {{code|>}}, {{code|^}}).<ref>{{cite web |url=https://technet.microsoft.com/en-us/library/cc723564.aspx |title=The Windows NT Command Shell |author=Tim Hill |year=1998 |publisher=MacMillan Technical Publishing |access-date=2010-01-13}}</ref> COMMAND.COM|DOS कमांड-लाइन दुभाषिया, हालांकि इसमें समान सिंटैक्स है, यह इसका समर्थन नहीं करता है।
Cmd.exe|Windows कमांड-लाइन दुभाषिया [[कैरट]] वर्ण का उपयोग करता है ({{code|^}}) विशेष अर्थ वाले आरक्षित कैरेक्टर्स से बचने के लिए (विशेष रूप से: {{code|&}}, {{code|<nowiki>|</nowiki>}}, {{code|(}}, {{code|)}}, {{code|<}}, {{code|>}}, {{code|^}}).<ref>{{cite web |url=https://technet.microsoft.com/en-us/library/cc723564.aspx |title=The Windows NT Command Shell |author=Tim Hill |year=1998 |publisher=MacMillan Technical Publishing |access-date=2010-01-13}}</ref> COMMAND.COM|DOS कमांड-लाइन दुभाषिया, हालांकि इसमें समान सिंटैक्स है, यह इसका समर्थन नहीं करता है।


उदाहरण के लिए, विंडोज कमांड प्रॉम्प्ट पर, इसका परिणाम सिंटैक्स त्रुटि होगा।
उदाहरण के लिए, विंडोज कमांड प्रॉम्प्ट पर, इसका परिणाम सिंटैक्स त्रुटि होगा।
Line 89: Line 89:


=== [[खिड़कियाँ]] पॉवरशेल ===
=== [[खिड़कियाँ]] पॉवरशेल ===
विंडोज में, बैकस्लैश का उपयोग पथ विभाजक के रूप में किया जाता है; इसलिए, इसे आमतौर पर एस्केप कैरेक्टर के रूप में इस्तेमाल नहीं किया जा सकता है। [[पावरशेल]] [[बैकटिक]] का उपयोग करता है<ref>{{cite web |url=https://technet.microsoft.com/en-us/library/hh847755.aspx |title=about_Escape_Characters |publisher=Msdn.microsoft.com |date=2014-05-08 |access-date=2016-11-24 |archive-url=https://web.archive.org/web/20161125044021/https://technet.microsoft.com/en-us/library/hh847755.aspx |archive-date=2016-11-25 |url-status=dead }}</ref> ( ` ) इसके बजाय।
विंडोज में, बैकस्लैश का उपयोग पथ विभाजक के रूप में किया जाता है; इसलिए, इसे सामान्यतः एस्केप कैरेक्टर के रूप में इस्तेमाल नहीं किया जा सकता है। [[पावरशेल]] [[बैकटिक]] का उपयोग करता है<ref>{{cite web |url=https://technet.microsoft.com/en-us/library/hh847755.aspx |title=about_Escape_Characters |publisher=Msdn.microsoft.com |date=2014-05-08 |access-date=2016-11-24 |archive-url=https://web.archive.org/web/20161125044021/https://technet.microsoft.com/en-us/library/hh847755.aspx |archive-date=2016-11-25 |url-status=dead }}</ref> ( ` ) इसके बजाय।


उदाहरण के लिए, निम्न आदेश:
उदाहरण के लिए, निम्न आदेश:
Line 103: Line 103:


== यह भी देखें ==
== यह भी देखें ==
* [[AltGr कुंजी]] का उपयोग उन वर्णों को टाइप करने के लिए किया जाता है जो कीबोर्ड लेआउट के स्थान के लिए असामान्य हैं।
* [[AltGr कुंजी]] का उपयोग उन कैरेक्टर्स को टाइप करने के लिए किया जाता है जो कीबोर्ड लेआउट के स्थान के लिए असामान्य हैं।
* [[सी में एस्केप सीक्वेंस]]
* [[सी में एस्केप सीक्वेंस|सी में एस्केप अनुक्रम]]
* [[लीनिंग टूथपिक सिंड्रोम]]
* [[लीनिंग टूथपिक सिंड्रोम]]
* [[नेस्टेड उद्धरण]]
* [[नेस्टेड उद्धरण]]

Revision as of 15:37, 20 February 2023

कम्प्यूटिंग और दूरसंचार में, एस्केप कैरेक्टर एक ऐसा कैरेक्टर (कंप्यूटिंग) है जो कैरेक्टर अनुक्रम में निम्नलिखित कैरेक्टर्स पर वैकल्पिक व्याख्या का आह्वान करता है। एक एस्केप कैरेक्टर मेटाचैकर का विशेष मामला है। सामान्यतः, कुछ बचने वाला कैरेक्टर है या नहीं इसका निर्णय संदर्भ पर निर्भर करता है।

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

परिभाषा

एस्केप कैरेक्टर का अपना अर्थ नहीं हो सकता है, इसलिए सभी बचने का क्रम दो या दो से अधिक कैरेक्टर के होते हैं।

एस्केप वर्ण कई प्रोग्रामिंग भाषाओं, डेटा स्वरूपों और संचार प्रोटोकॉल के लिए औपचारिक सिंटैक्स का हिस्सा हैं। किसी दिए गए वर्णमाला (कंप्यूटर विज्ञान) के लिए एस्केप कैरेक्टर का उद्देश्य कैरेक्टर अनुक्रम (तथाकथित एस्केप अनुक्रम) को शुरू करना है, जिसे प्रीफिक्स्ड एस्केप कैरेक्टर के बिना होने वाले ही कैरेक्टर से अलग तरीके से व्याख्या करना होता है।

एस्केप अनुक्रम के कार्यों में शामिल हैं:

  • सिंटैक्टिक इकाई को एनकोड करने के लिए, जैसे डिवाइस कमांड या विशेष डेटा, जिसे सीधे वर्णमाला द्वारा प्रदर्शित नहीं किया जा सकता है।
  • पात्रों का प्रतिनिधित्व करने के लिए, कैरेक्टर उद्धरण के रूप में संदर्भित, जिसे वर्तमान संदर्भ में टाइप नहीं किया जा सकता है, या अवांछित व्याख्या होगी। इस मामले में, एस्केप अनुक्रम डिग्राफ (कंप्यूटिंग) है जिसमें एस्केप कैरेक्टर और उद्धृत कैरेक्टर शामिल है।

नियंत्रण कैरेक्टर

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

कई प्रोग्रामिंग भाषाओं में, एस्केप कैरेक्टर कुछ एस्केप अनुक्रम भी बनाता है जिसे कंट्रोल कैरेक्टर कहा जाता है। उदाहरण के लिए, लाइन ब्रेक (कंप्यूटिंग) का एस्केप अनुक्रम होता है \n.

उदाहरण

जावास्क्रिप्ट

जावास्क्रिप्ट का उपयोग करता है \ (बैकस्लैश) के लिए एस्केप कैरेक्टर के रूप में:[1][2]

  • \' एकल बोली
  • \" दोहरे उद्धरण
  • \\ बैकस्लैश
  • \n नई पंक्ति
  • \r कैरिज रिटर्न
  • \t टैब
  • \b backspace
  • \f फ़ीड बनाएं
  • \v लंबवत टैब (इंटरनेट एक्सप्लोरर 9 और पुराने व्यवहार '\v जैसा 'v वर्टिकल टैब के बजाय ('\x0B). यदि क्रॉस-ब्राउज़र संगतता चिंता का विषय है, तो उपयोग करें \x0B के बजाय \v.)
  • \0 अशक्त वर्ण (U+0000 NULL) (केवल अगर अगला वर्ण दशमलव अंक नहीं है, अन्यथा यह ऑक्टल एस्केप अनुक्रम है)
  • \xFF हेक्साडेसिमल बाइट FF द्वारा दर्शाया गया वर्ण

ध्यान दें कि \v और \0 JSON स्ट्रिंग्स में एस्केप की अनुमति नहीं है। उदाहरण कोड: <वाक्यविन्यास लैंग = जावास्क्रिप्ट> कंसोल.लॉग ( \\n \n का उपयोग \\n पंक्ति नीचे करने के बाद कैरेक्टर्स को स्थानांतरित कर देगा) कंसोल.लॉग ( \\t \t का उपयोग करके कैरेक्टर्स को \\t टैब लंबाई के बाद दाईं ओर स्थानांतरित करें) कंसोल.लॉग ( \\r \r का उपयोग कैरिज रिटर्न की नकल करेगा, जिसका अर्थ है कि पंक्ति की शुरुआत में स्थानांतरित करना) // कुछ टर्मिनलों पर स्क्रीन को साफ़ करने के लिए उपयोग किया जा सकता है। विंडोज़ अकेले \n के बजाय \r\n का उपयोग करता है </वाक्यविन्यास हाइलाइट>

ASCII एस्केप कैरेक्टर

ASCII एस्केप कैरेक्टर (अष्टभुजाकार: \033, हेक्साडेसिमल: \x1B, या ^[, या, दशमलव में, 27) का उपयोग कई आउटपुट डिवाइसों में कैरेक्टर्स की श्रृंखला शुरू करने के लिए किया जाता है जिसे कंट्रोल अनुक्रम या एस्केप अनुक्रम कहा जाता है। सामान्यतः, एस्केप करैक्टर को डिवाइस को सचेत करने के लिए पहले इस तरह के क्रम में भेजा गया था कि निम्नलिखित कैरेक्टर को सादे कैरेक्टर के बजाय कंट्रोल अनुक्रम के रूप में व्याख्यायित किया जाना था, फिर या अधिक कैरेक्टर कुछ विस्तृत कार्रवाई निर्दिष्ट करने के लिए अनुसरण करेंगे, जिसके बाद उपकरण सामान्य रूप से कैरेक्टर्स की व्याख्या करने के लिए वापस जाएगा। उदाहरण के लिए, का क्रम ^[, उसके बाद प्रिंट करने योग्य पात्र [2;10H, डिजिटल उपकरण निगम VT102 टर्मिनल को अपने कर्सर (कंप्यूटर) को स्क्रीन की दूसरी पंक्ति के 10वें सेल में ले जाने का कारण बनेगा। इसे बाद में ANSI X3.64 मानक द्वारा कवर किए गए ANSI एस्केप कोड में विकसित किया गया था। एस्केप कैरेक्टर हेवलेट पैकर्ड प्रिंटर कमांड लैंग्वेज में प्रत्येक कमांड अनुक्रम भी शुरू करता है।

एस्केप कैरेक्टर शब्द का प्रारंभिक संदर्भ बॉब बेमर के आईबीएम तकनीकी प्रकाशनों में पाया जाता है, जिन्हें ASCII कैरेक्टर सेट पर अपने काम के दौरान इस तंत्र का आविष्कार करने का श्रेय दिया जाता है।[3] एस्केप कुंजी सामान्यतः मानक पीसी कीबोर्ड पर पाई जाती है। हालांकि, यह सामान्यतः पीडीए और अन्य उपकरणों के लिए कीबोर्ड से अनुपस्थित है जो मुख्य रूप से एएससीआईआई संचार के लिए डिज़ाइन नहीं किए गए हैं। DEC VT220 श्रृंखला कुछ लोकप्रिय कीबोर्ड में से थी जिसमें मुख्य कीपैड के ऊपर किसी कुंजी का उपयोग करने के बजाय समर्पित Esc कुंजी नहीं थी। 1970-1980 के दशक के उपयोगकर्ता इंटरफेस में इस कुंजी को एस्केप कैरेक्टर के रूप में उपयोग करना असामान्य नहीं था, लेकिन आधुनिक डेस्कटॉप कंप्यूटरों में इस तरह के उपयोग को छोड़ दिया जाता है। कभी-कभी कुंजी की पहचान AltMode (वैकल्पिक मोड के लिए) से की जाती थी। बिना किसी समर्पित कुंजी के भी, टाइप करके एस्केप कैरेक्टर कोड उत्पन्न किया जा सकता है [ जबकि साथ नीचे पकड़े हुए Ctrl.

प्रोग्रामिंग और डेटा प्रारूप

कई आधुनिक प्रोग्रामिंग भाषाएं दोहरे-उद्धरण वर्ण निर्दिष्ट करती हैं (") स्ट्रिंग शाब्दिक के लिए सीमांकक के रूप में। बैकस्लैश (\) एस्केप कैरेक्टर सामान्यतः स्ट्रिंग लिटरल के अंदर डबल-कोट्स को शामिल करने के दो तरीके प्रदान करता है, या तो स्ट्रिंग में एम्बेडेड डबल-कोट कैरेक्टर के अर्थ को संशोधित करके (\" बन जाता है "), या दोहरे-उद्धरण वर्ण के हेक्साडेसिमल मान सहित कैरेक्टर्स के अनुक्रम के अर्थ को संशोधित करके (\x22 बन जाता है ").

C (प्रोग्रामिंग लैंग्वेज), C++, Java (प्रोग्रामिंग लैंग्वेज), और रूबी (प्रोग्रामिंग भाषा) सभी समान दो बैकस्लैश एस्केप स्टाइल की अनुमति देते हैं। परिशिष्ट भाग भाषा और माइक्रोसॉफ्ट रिच टेक्स्ट फ़ॉर्मैट भी बैकस्लैश एस्केप का उपयोग करते हैं। उद्धृत-मुद्रित करने योग्य एन्कोडिंग बराबर चिह्न का उपयोग बचने वाले वर्ण के रूप में करता है।

URL और URI प्रतिशत चिह्न का उपयोग करते हैं। गैर-ASCII कैरेक्टर्स के लिए विशेष अर्थ वाले कैरेक्टर्स को उद्धृत करने के लिए%-प्रतिशत-एन्कोडिंग। एम्परसेंड (&) कैरेक्टर को एसजीएमएल और एचटीएमएल और एक्सएमएल जैसे व्युत्पन्न प्रारूपों में बचने वाले कैरेक्टर के रूप में माना जा सकता है।

कुछ प्रोग्रामिंग लैंग्वेज विशेष कैरेक्टर्स को शाब्दिक रूप से प्रस्तुत करने के अन्य तरीके भी प्रदान करती हैं, बिना एस्केप कैरेक्टर की आवश्यकता के (देखें उदाहरण के लिए सीमांकक# परिसीमन टक्कर)।

संचार प्रोटोकॉल

पॉइंट-टू-पॉइंट प्रोटोकॉल (PPP) का उपयोग करता है 0x7D ऑक्टेट (कंप्यूटिंग) (\175, या एएससीआईआई: }) एस्केप कैरेक्टर के रूप में। तुरंत बाद वाले ऑक्टेट को XORed किया जाना चाहिए 0x20 उच्च स्तर के प्रोटोकॉल में पारित होने से पहले। यह दोनों पर लागू होता है 0x7D खुद और नियंत्रण कैरेक्टर 0x7E (जो पीपीपी में फ्रेम की शुरुआत और अंत को चिह्नित करने के लिए उपयोग किया जाता है) जब उन ऑक्टेट को पीपीपी द्वारा उच्च स्तर के प्रोटोकॉल द्वारा प्रसारित करने की आवश्यकता होती है, साथ ही लिंक स्थापित होने पर अन्य ऑक्टेट पर बातचीत की जाती है। यही है, जब उच्च स्तरीय प्रोटोकॉल संचारित करना चाहता है 0x7D, यह अनुक्रम के रूप में प्रसारित होता है 0x7D 0x5D, और 0x7E रूप में प्रेषित किया जाता है 0x7D 0x5E.

बॉर्न शेल

बॉर्न शेल (श) में, तारक चिह्न (*) और प्रश्न चिह्न (?) वर्ण वाइल्डकार्ड कैरेक्टर हैं जिन्हें ग्लोब (प्रोग्रामिंग) के माध्यम से विस्तारित किया जाता है। पूर्ववर्ती एस्केप वर्ण के बिना, a * कार्यशील निर्देशिका में सभी फाइलों के नामों का विस्तार होगा जो अवधि के साथ शुरू नहीं होते हैं और केवल अगर ऐसी फाइलें हैं, अन्यथा * अविस्तारित रहता है। इसलिए फाइल को संदर्भित करने के लिए जिसे शाब्दिक रूप से * कहा जाता है, शेल को बैकस्लैश से पहले इसे इस तरह से व्याख्या नहीं करने के लिए कहा जाना चाहिए (\). यह तारांकन की व्याख्या को संशोधित करता है (*). तुलना करना:

 
rm *    # delete all files in the current directory

rm \*   # delete the file named *


विंडोज कमांड प्रॉम्प्ट

Cmd.exe|Windows कमांड-लाइन दुभाषिया कैरट वर्ण का उपयोग करता है (^) विशेष अर्थ वाले आरक्षित कैरेक्टर्स से बचने के लिए (विशेष रूप से: &, |, (, ), <, >, ^).[4] COMMAND.COM|DOS कमांड-लाइन दुभाषिया, हालांकि इसमें समान सिंटैक्स है, यह इसका समर्थन नहीं करता है।

उदाहरण के लिए, विंडोज कमांड प्रॉम्प्ट पर, इसका परिणाम सिंटैक्स त्रुटि होगा। <वाक्यविन्यास प्रकाश लैंग = डॉसकॉन हाइलाइट = 1> C:\>इको <हैलो वर्ल्ड> कमांड का सिंटैक्स गलत है। </syntaxhighlight>जबकि यह स्ट्रिंग को आउटपुट करेगा: <hello world> <वाक्यविन्यास प्रकाश लैंग = डॉसकॉन हाइलाइट = 1> C:\>इको ^<हैलो वर्ल्ड^> <हैलो वर्ल्ड> </वाक्यविन्यास हाइलाइट>

खिड़कियाँ पॉवरशेल

विंडोज में, बैकस्लैश का उपयोग पथ विभाजक के रूप में किया जाता है; इसलिए, इसे सामान्यतः एस्केप कैरेक्टर के रूप में इस्तेमाल नहीं किया जा सकता है। पावरशेल बैकटिक का उपयोग करता है[5] ( ` ) इसके बजाय।

उदाहरण के लिए, निम्न आदेश: <वाक्यविन्यास हाइलाइट लैंग = ps1con हाइलाइट = 1> पीएस सी: \> इको `टी फर्स्ट लाइन` एन न्यू लाइन

       पहली पंक्ति

नई पंक्ति </वाक्यविन्यास हाइलाइट>

अन्य

  • कोटेड-प्रिंट करने योग्य, जो 8-बिट डेटा को सीमित लाइन लंबाई के 7-बिट डेटा में एन्कोड करता है, बराबर चिह्न का उपयोग करता है (=) एस्केप कैरेक्टर के रूप में।

यह भी देखें

संदर्भ

  1. "JavaScript character escape sequences · Mathias Bynens". Mathiasbynens.be. Retrieved 2014-06-30.
  2. "Special Characters (JavaScript)". Msdn.microsoft.com. 2014-06-20. Retrieved 2014-06-30.
  3. Bemer, Bob. "How Bob Bemer Invented the ESCAPE Sequence and Key". www.bobbemer.com. Archived from the original on 4 January 2018. Retrieved 22 March 2018.
  4. Tim Hill (1998). "The Windows NT Command Shell". MacMillan Technical Publishing. Retrieved 2010-01-13.
  5. "about_Escape_Characters". Msdn.microsoft.com. 2014-05-08. Archived from the original on 2016-11-25. Retrieved 2016-11-24.


बाहरी संबंध

Public Domain This article incorporates public domain material from Federal Standard 1037C. General Services Administration. Archived from the original on 2022-01-22.