Unicode Inspector
टेक्स्ट पेस्ट करें → हर codepoint की तालिका। Hex, decimal, UTF-8 bytes, श्रेणी। अदृश्य अक्षरों को पहचानें।
JXXR1 द्वारा बनाया गया · ♥ स्पॉन्सर करें · ☕ मुझे coffee दिलाएं
यह किसके लिए है?
"यह string equal क्यों नहीं compare कर रही?" "यह username पहले से लिया हुआ क्यों दिखाया जा रहा है जबकि यह free लगता है?" "यह filename मेरे shell को क्यों तोड़ रही है?" उत्तर लगभग हमेशा यही होता है: bytes वो नहीं हैं जो आपकी आँखें देखती हैं। दो अक्षर एक जैसे दिख सकते हैं लेकिन अलग codepoint हो सकते हैं (Latin "a" बनाम Cyrillic "а"); whitespace में non-breaking space, zero-width joiner, या right-to-left override छिपे हो सकते हैं; एक emoji एक codepoint भी हो सकता है या चार। यह टूल किसी भी टेक्स्ट को उसके अलग-अलग Unicode codepoints में विघटित कर देता है, साथ में hex, decimal, UTF-8 byte क्रम, श्रेणी और ज्ञात होने पर नाम।
कब इस्तेमाल करें
- "दिखता एक जैसा है लेकिन equal नहीं है" वाली string बग को पहचानना।
- copy-paste किए गए टेक्स्ट में छिपे अदृश्य अक्षर (zero-width space, BOM, RTL override) ढूंढना।
- एक fixed-width column में स्टोर करने से पहले bytes बनाम codepoints बनाम UTF-16 code unit गिनना।
- यह देखने के लिए emoji की जांच करना कि वह कौन सा ZWJ क्रम उपयोग करता है।
- domain names या usernames में homoglyph attacks पकड़ना।
- एक hex dump के लिए सटीक UTF-8 byte क्रम बनाना।
आउटपुट पढ़ना
- Code point — अमूर्त Unicode मान,
U+XXXXके रूप में लिखा जाता है। इसमें 1.1 मिलियन हैं; उपयोग में सबसे ऊपर U+10FFFF है। - UTF-8 — आधुनिक फ़ाइलों में वह codepoint कैसे bytes के रूप में encode होता है (प्रत्येक 1–4 bytes)।
- UTF-16 code units — JavaScript strings (
s.length) और Java strings क्या गिनती हैं। U+FFFF से ऊपर का एक codepoint (अधिकांश emoji) दो UTF-16 unit लेता है (surrogate pair)। - श्रेणी — Unicode का सामान्य श्रेणी संक्षिप्त रूप: L=letter, N=number, P=punctuation, S=symbol, Z=separator, C=control/format/private।
आम गलतियाँ
- लंबाई अस्पष्ट है। "👨👩👧" में 1 grapheme cluster, 5 codepoints, 11 UTF-16 units और 18 UTF-8 bytes हैं — सभी "लंबाइयां" जो कुछ रिपोर्ट कर सकता है।
- Zero-width joiner क्रम बनाम sequence selectors। कई emoji ZWJ क्रम हैं: family, profession, skin-tone variants। एक ZWJ को पुनः व्यवस्थित करना या हटाना बदल देता है कि क्या render होगा।
- Normalisation मायने रखता है। "café" e+◌́ (NFD) हो सकता है या é (NFC)। ये एक जैसे दिखते हैं लेकिन bytes अलग हैं; databases और comparison code को एक ही form में normalise करना चाहिए।
- Right-to-left override खतरनाक हैं। U+202E वाला filename अपनी display order पलट सकता है — जिससे
resutxt.exeएक file browser मेंresuexe.txtजैसा दिखता है। phishing में इस्तेमाल किया जाता है। - नाम column आंशिक है। एक वास्तविक Unicode database में हर codepoint के नाम होते हैं; inspector केवल control characters और सामान्य format/whitespace characters के नाम भेजता है जहां नाम सबसे उपयोगी निदान होता है।
- Surrogate halves अकेले प्रकट नहीं होने चाहिए। यदि आप आउटपुट में U+D800–U+DFFF देखते हैं, तो input एक malformed UTF-16 string है (lone surrogate)। अधिकांश API उसे UTF-8 में encode करने से मना कर देंगे।