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

From Vigyanwiki
(Created page with "{{short description |Character used to quote special-purpose characters, e.g. '\'}} {{Self reference|For escaping markup in Wikipedia edits, see WP:NOWIKI}} {{Distinguish|...")
 
(No difference)

Revision as of 17:15, 10 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.