Unicode एस्केप / अनएस्केप

टेक्स्ट पेस्ट करें और एस्केप तुरंत दिखते हैं — या \u4F60 पेस्ट करके अक्षर वापस पाएँ। बिना बटन, कुछ अपलोड नहीं।

इसका उपयोग कैसे करें

  1. एस्केप या अनएस्केप चुनें — इनपुट बॉक्स जैसा है वैसा ही रहता है, इसलिए बिना दोबारा टाइप किए उसी टेक्स्ट को दोनों तरफ़ से देख सकते हैं।
  2. एस्केप: टेक्स्ट टाइप या पेस्ट करें और एस्केप तुरंत दिखते हैं। अपनी लक्ष्य भाषा का सिंटैक्स चुनें: \uXXXX (Java, JSON, .properties — BMP से ऊपर के अक्षर UTF-16 सरोगेट जोड़े बन जाते हैं), \u{X} (ES6 JavaScript, Rust, Swift, Ruby, PHP), \UXXXXXXXX (Python, C, Go, C#) या U+XXXX (Unicode मानक संकेतन)।
  3. श्रेणी चुनें: “केवल ग़ैर-ASCII” (डिफ़ॉल्ट) U+007F से ऊपर सब कुछ एस्केप करता है और ASCII, स्पेस व लाइन ब्रेक अछूते छोड़ता है; “सभी अक्षर” हर कोड पॉइंट एस्केप करता है, इसलिए आउटपुट शुद्ध ASCII होता है।
  4. अनएस्केप: एस्केप वाला टेक्स्ट पेस्ट करके अक्षर वापस पाएँ। परिणाम के ऊपर की पंक्ति बताती है कि कितने अक्षर डिकोड हुए और, यदि कोई टुकड़ा पढ़ा नहीं जा सका, तो वह कौन-सा था और कहाँ।

उदाहरण

इनपुट

Café "naïve" 😀

एस्केप किया

Caf\u00E9 "na\u00EFve" \uD83D\uDE00

“é” का ASCII रूप नहीं है, इसलिए यह \u00E9 बन जाता है। “😀” U+1F600 है, BMP से ऊपर, इसलिए \uXXXX सिंटैक्स इसे सरोगेट जोड़ी \uD83D\uDE00 के रूप में लिखता है। \u{X} पर जाने पर वही टेक्स्ट Caf\u{E9} "na\u{EF}ve" \u{1F600} देता है; \UXXXXXXXX …\U0001F600 देता है; U+XXXX से CafU+00E9 "naU+00EF ve" U+1F600 मिलता है — é के बाद दोहरा स्पेस विभाजक प्लस वह स्पेस है जो टेक्स्ट में पहले से था। इनमें से हर एक अनएस्केप में बिना बदले वापस पेस्ट होता है।

नियम, सीमाएँ और ज्ञात समस्याएँ

  • केवल चार सिंटैक्स पहचाने जाते हैं: \uXXXX (ठीक 4 हेक्स अंक), \u{X} (1–6 अंक), \UXXXXXXXX (ठीक 8 अंक) और U+XXXX (1–6 अंक, बड़ा U+)। %uXXXX, \x{X}, CSS \X और \N{NAME} समर्थित नहीं हैं; 你 जैसे HTML रेफ़रेंस HTML एंटिटी टूल के हैं।
  • \uXXXX 4 अंकों पर स्थिर है: \u12 और \u12345 को \uXXXX के रूप में नहीं पढ़ा जाता — \u12345 U+1234 और उसके बाद शाब्दिक “5” के रूप में डिकोड होता है। 1–6 अंक चाहिए तो \u{…} लिखें।
  • \uXXXX की कोई अक्षर सीमा नहीं है: \u4F60abc 你abc के रूप में डिकोड होता है, और U+4F601 कोड पॉइंट U+4F601 (5 अंक, मान्य) है, U+4F60 और उसके बाद “1” नहीं।
  • U+XXXX में कोड पॉइंट के बाद एक स्पेस विभाजक है, सामग्री नहीं: U+4F60 hello 你hello के रूप में डिकोड होता है। यह टूल हर U+ टोकन के बाद स्पेस लिखता है (बिल्कुल अंत को छोड़कर), इसलिए इसका अपना आउटपुट राउंड-ट्रिप करता है; बिना स्पेस के हाथ से लिखे टोकन अगले हेक्स अंकों से चिपक जाते हैं और अपरिचित गिने जाते हैं।
  • सरोगेट जोड़े केवल \uXXXX सिंटैक्स में आते हैं, क्योंकि वही Java/JSON प्रतिनिधित्व है; \u{1F600}, \U0001F600 और U+1F600 कोड पॉइंट सीधे लिखते हैं। बिना लो सरोगेट वाला हाई सरोगेट जैसा लिखा गया वैसा रहता है और अपरिचित गिना जाता है — “�” से कभी नहीं बदला जाता।
  • U+10FFFF से ऊपर के कोड पॉइंट और सरोगेट श्रेणी भी वैसे ही अस्वीकार होते हैं: जैसे लिखे गए वैसे रहते हैं और गिने जाते हैं, चुपचाप नहीं बदले जाते।
  • “केवल ग़ैर-ASCII” श्रेणी शाब्दिक बैकस्लैश को एस्केप नहीं करती: यदि आपके टेक्स्ट में पहले से \u4f60 है, तो अनएस्केप उसे एस्केप के रूप में पढ़ेगा। यह अस्पष्टता श्रेणी की अपनी है — जब बैकस्लैश मायने रखते हों तो “सभी अक्षर” चुनें।
  • डिकोडिंग एक ही पास में है: \u005Cu4F60 शाब्दिक टेक्स्ट \u4F60 बनता है, 你 नहीं। यदि सचमुच दो परतें चाहिए तो दोबारा पेस्ट करें।
  • मान्य कंट्रोल अक्षर स्वयं के रूप में डिकोड होते हैं: \u0000 U+0000 देता है (अदृश्य, पर त्रुटि नहीं), इसलिए आउटपुट में ऐसे अक्षर हो सकते हैं जो आपको दिखाई न दें।
  • \n और \t जैसे स्ट्रिंग एस्केप साधारण टेक्स्ट के रूप में रहते हैं और नहीं गिने जाते, और पूरे JSON स्ट्रिंग लिटरल अलग विषय हैं। URL, HTML और Base64 एन्कोडिंग भी अलग टूल हैं।
  • अधिकतम 100,000 अक्षर; इससे अधिक पर कटा हुआ परिणाम देने के बजाय त्रुटि दिखती है। 20,000 अक्षरों से अधिक पर टाइप करना रोकने के लगभग 0.6 सेकंड बाद परिणाम अपडेट होता है।
  • कोई फ़ाइल अपलोड नहीं, कोई इतिहास नहीं और आपका इनपुट ले जाने वाला कोई शेयर लिंक नहीं: सब कुछ आपके ब्राउज़र में चलता है और टेक्स्ट कभी पेज से बाहर नहीं जाता।

टेक्स्ट एस्केप या अनएस्केप करने के बाद लोग आमतौर पर आगे यही चाहते हैं।