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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

अन्य

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

यह भी देखें

 * AltGr कुंजी का उपयोग उन कैरेक्टर्स को टाइप करने के लिए किया जाता है जो कीबोर्ड लेआउट के स्थान के लिए असामान्य हैं।
 * सी में एस्केप अनुक्रम
 * लीनिंग टूथपिक सिंड्रोम
 * नेस्टेड उद्धरण
 * स्ट्रॉपिंग (वाक्यविन्यास) - कुछ सम्मेलनों में प्रमुख कैरेक्टर (जैसे एपोस्ट्रोफी) बचने वाले कैरेक्टर के रूप में कार्य करता है

बाहरी संबंध

 * That Powerful ESCAPE Character -- Key and Sequences – Bob Bemer