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

From Vigyanwiki

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

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

परिभाषा

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

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

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

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

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

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

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

उदाहरण

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

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

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

ध्यान दें कि \v और \0 JSON स्ट्रिंग्स में एस्केप की अनुमति नहीं है।

console.log("Using \\n \nWill shift the characters after \\n one row down")
console.log("Using \\t \twill shift the characters after \\t one tab length to the right")
console.log("Using \\r \rWill imitate a carriage return, which means shifting to the start of the row") // can be used to clear the screen on some terminals. Windows uses \r\n instead of \n alone

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

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

एस्केप कैरेक्टर शब्द का प्रारंभिक संदर्भ बॉब बेमर के आईबीएम प्रौद्योगिक प्रकाशनों में पाया जाता है, जिन्हें ASCII कैरेक्टर समुच्चय पर अपने काम के समय इस तंत्र का आविष्कार करने का श्रेय दिया जाता है।[3]

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

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

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

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

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

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

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

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

बॉर्न शेल

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

 
rm *    # delete all files in the current directory

rm \*   # delete the file named *


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

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

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

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

C:\>echo <hello world>
The syntax of the command is incorrect.

चूंकि यह स्ट्रिंग को आउटपुट करेगा: <hello world>

C:\>echo ^<hello world^>
<hello world>

विंडोज पॉवरशेल

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

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

PS C:\> echo "`tFirst line`nNew line"
        First line
New line

अन्य

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

यह भी देखें

संदर्भ

  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. "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.