ᴇᴅɪᴛ: जोड़ा गया बिल्कुल क्या मूल प्रश्न तल पर की तलाश में है। यह वास्ताव में अच्छा है।
ʀᴏᴍᴀɴ ɴᴜᴍᴇʀᴀʟ ᴏɴᴇ और ʟᴀᴛɪɴ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ɪ के बारे में अपने प्रश्न का उत्तर हाँ है। यहां यह जांच करने के लिए एक त्वरित तरीका है:
$ perl -Mcharnames=:full -MUnicode::Normalize -le 'print
NFKD "\N{ROMAN NUMERAL ONE}" eq NFKD "\N{LATIN CAPITAL LETTER I}"'
1
हालांकि, के लिए कि क्या अक्षर हैं जो नेत्रहीन अप्रभेद्य हैं अनुकूलता तुल्यता है के रूप में अपने प्रश्न का उत्तर सबसे निश्चित रूप से नहीं है!
उदाहरण के लिए, ᴄʜᴇʀᴏᴋᴇᴇ ʟᴇᴛᴛᴇʀ ɢᴏ (Ꭺ) ʟᴀᴛɪɴ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ᴀ (ए) जैसा दिखता है, लेकिन निश्चित रूप से एनएफकेडी समतुल्य नहीं है। इसी प्रकार ɢʀᴇᴇᴋ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ᴀʟᴘʜᴀ (Α) और ᴄʏʀɪʟʟɪᴄ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ᴀ (ए) के साथ एनएफकेडी समकक्ष नहीं है। प्रभावशाली ढंग से बहुत से लोग हैं (ठीक है, मैं उन्हें गिन नहीं सकता :) ऐसे मुद्दों। केवल कोड अंक हैं NFKD-समतुल्य ʟᴀᴛɪɴ को ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ᴀ, उदाहरण के लिए, कर रहे हैं:
U+00041 A GC=Lu SC=Latin LATIN CAPITAL LETTER A
U+01D2C ᴬ GC=Lm SC=Latin MODIFIER LETTER CAPITAL A
U+024B6 Ⓐ GC=So SC=Common CIRCLED LATIN CAPITAL LETTER A
U+0FF21 A GC=Lu SC=Latin FULLWIDTH LATIN CAPITAL LETTER A
U+1D400 GC=Lu SC=Common MATHEMATICAL BOLD CAPITAL A
U+1D434 GC=Lu SC=Common MATHEMATICAL ITALIC CAPITAL A
U+1D468 GC=Lu SC=Common MATHEMATICAL BOLD ITALIC CAPITAL A
U+1D49C GC=Lu SC=Common MATHEMATICAL SCRIPT CAPITAL A
U+1D4D0 GC=Lu SC=Common MATHEMATICAL BOLD SCRIPT CAPITAL A
U+1D504 GC=Lu SC=Common MATHEMATICAL FRAKTUR CAPITAL A
U+1D538 GC=Lu SC=Common MATHEMATICAL DOUBLE-STRUCK CAPITAL A
U+1D56C GC=Lu SC=Common MATHEMATICAL BOLD FRAKTUR CAPITAL A
U+1D5A0 GC=Lu SC=Common MATHEMATICAL SANS-SERIF CAPITAL A
U+1D5D4 GC=Lu SC=Common MATHEMATICAL SANS-SERIF BOLD CAPITAL A
U+1D608 GC=Lu SC=Common MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
U+1D63C GC=Lu SC=Common MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
U+1D670 GC=Lu SC=Common MATHEMATICAL MONOSPACE CAPITAL A
U+1F130 GC=So SC=Common SQUARED LATIN CAPITAL LETTER A
इसी तरह, यहाँ कोड पॉइंट्स कि करने के लिए NFKD समतुल्य हैं ʟᴀᴛɪɴ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ɪ आप पर देख रहे थे:
U+00049 I GC=Lu SC=Latin LATIN CAPITAL LETTER I
U+01D35 ᴵ GC=Lm SC=Latin MODIFIER LETTER CAPITAL I
U+02110 ℐ GC=Lu SC=Common SCRIPT CAPITAL I
U+02111 ℑ GC=Lu SC=Common BLACK-LETTER CAPITAL I
U+02160 Ⅰ GC=Nl SC=Latin ROMAN NUMERAL ONE
U+024BE Ⓘ GC=So SC=Common CIRCLED LATIN CAPITAL LETTER I
U+0FF29 I GC=Lu SC=Latin FULLWIDTH LATIN CAPITAL LETTER I
U+1D408 GC=Lu SC=Common MATHEMATICAL BOLD CAPITAL I
U+1D43C GC=Lu SC=Common MATHEMATICAL ITALIC CAPITAL I
U+1D470 GC=Lu SC=Common MATHEMATICAL BOLD ITALIC CAPITAL I
U+1D4D8 GC=Lu SC=Common MATHEMATICAL BOLD SCRIPT CAPITAL I
U+1D540 GC=Lu SC=Common MATHEMATICAL DOUBLE-STRUCK CAPITAL I
U+1D574 GC=Lu SC=Common MATHEMATICAL BOLD FRAKTUR CAPITAL I
U+1D5A8 GC=Lu SC=Common MATHEMATICAL SANS-SERIF CAPITAL I
U+1D5DC GC=Lu SC=Common MATHEMATICAL SANS-SERIF BOLD CAPITAL I
U+1D610 GC=Lu SC=Common MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
U+1D644 GC=Lu SC=Common MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
U+1D678 GC=Lu SC=Common MATHEMATICAL MONOSPACE CAPITAL I
U+1F138 GC=So SC=Common SQUARED LATIN CAPITAL LETTER I
ध्यान दें कि वहां एक उदाहरण के रूप में कोई ɢʀᴇᴇᴋ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ɪᴏᴛᴀ नहीं है।
आप लुकलेक्स खोजने के लिए एनएफकेडी का उपयोग नहीं कर सकते हैं, और कुछ चीजें जो हैं एनकेएफडी इक्विव एक जैसे दिखते नहीं हैं। तो आप सामान्य मामले में ऐसा नहीं कर सकते हैं। यह कोई समस्या नहीं है, आप वास्तविक फोंट को देखे बिना भी देखना शुरू कर सकते हैं।
मेरा मानना है कि आईसीयू के पास \p{X-Confusable=A}
जैसे विस्तारित, गैर-मानक संपत्ति है। मैंने इसके लिए अपनी डेटाफाइल डाउनलोड की है, लेकिन अभी तक इसके साथ बहुत कुछ नहीं खेला है।
अद्यतन
यह पता चला UTS #39, Unicode Security Mechanisms, आप के लिए वास्तव में क्या देख रहे है। यदि आप its raw, plaintext datafiles लाते हैं, तो आप यह निर्धारित करने में सक्षम होंगे कि कौन से कोड बिंदु एक दूसरे के साथ संभावित रूप से भ्रमित हैं।
उदाहरण के लिए, इस संदेश में पहले पाठ में, मैंने कोड बिंदुओं को समझाया जो एनएफकेडी ʟᴀᴛɪɴ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ɪ के बराबर थे, और इंगित किया कि उस सेट से कई संभावित confusables गायब थे। ऐसा इसलिए है क्योंकि एनएफकेडी मानचित्रण को confusables का पता लगाने के लिए डिज़ाइन नहीं किया गया है। हालांकि, यूटीएस # 3 9 की डेटाफाइल बहुत ही उद्देश्य के लिए डिज़ाइन की गई हैं।
मेरी ʟᴀᴛɪɴ ᴄᴀᴘɪᴛᴀʟ ʟᴇᴛᴛᴇʀ ɪ गणन फिर से करना करने के लिए, यह ucsort का उपयोग कर कि UTS # 39 समझे परस्पर इसके साथ भ्रम, हम इन सभी कोड अंक, unichars का उपयोग कर स्वरूपित और यूनिकोड मिलान एल्गोरिथ्म के क्रम में सॉर्ट को संभालने के लिए अद्यतन करने:
U+0007C | GC=Sm SC=Common VERTICAL LINE
U+02223 ∣ GC=Sm SC=Common DIVIDES
U+0FFE8 │ GC=So SC=Common HALFWIDTH FORMS LIGHT VERTICAL
U+00031 1 GC=Nd SC=Common DIGIT ONE
U+1D7CF GC=Nd SC=Common MATHEMATICAL BOLD DIGIT ONE
U+1D7D9 GC=Nd SC=Common MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
U+1D7E3 GC=Nd SC=Common MATHEMATICAL SANS-SERIF DIGIT ONE
U+1D7ED GC=Nd SC=Common MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
U+1D7F7 GC=Nd SC=Common MATHEMATICAL MONOSPACE DIGIT ONE
U+00049 I GC=Lu SC=Latin LATIN CAPITAL LETTER I
U+0FF29 I GC=Lu SC=Latin FULLWIDTH LATIN CAPITAL LETTER I
U+02160 Ⅰ GC=Nl SC=Latin ROMAN NUMERAL ONE
U+02110 ℐ GC=Lu SC=Common SCRIPT CAPITAL I
U+02111 ℑ GC=Lu SC=Common BLACK-LETTER CAPITAL I
U+1D408 GC=Lu SC=Common MATHEMATICAL BOLD CAPITAL I
U+1D43C GC=Lu SC=Common MATHEMATICAL ITALIC CAPITAL I
U+1D470 GC=Lu SC=Common MATHEMATICAL BOLD ITALIC CAPITAL I
U+1D4D8 GC=Lu SC=Common MATHEMATICAL BOLD SCRIPT CAPITAL I
U+1D540 GC=Lu SC=Common MATHEMATICAL DOUBLE-STRUCK CAPITAL I
U+1D574 GC=Lu SC=Common MATHEMATICAL BOLD FRAKTUR CAPITAL I
U+1D5A8 GC=Lu SC=Common MATHEMATICAL SANS-SERIF CAPITAL I
U+1D5DC GC=Lu SC=Common MATHEMATICAL SANS-SERIF BOLD CAPITAL I
U+1D610 GC=Lu SC=Common MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
U+1D644 GC=Lu SC=Common MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
U+1D678 GC=Lu SC=Common MATHEMATICAL MONOSPACE CAPITAL I
U+00196 Ɩ GC=Lu SC=Latin LATIN CAPITAL LETTER IOTA
U+0006C l GC=Ll SC=Latin LATIN SMALL LETTER L
U+0FF4C l GC=Ll SC=Latin FULLWIDTH LATIN SMALL LETTER L
U+0217C ⅼ GC=Nl SC=Latin SMALL ROMAN NUMERAL FIFTY
U+02113 ℓ GC=Ll SC=Common SCRIPT SMALL L
U+1D425 GC=Ll SC=Common MATHEMATICAL BOLD SMALL L
U+1D459 GC=Ll SC=Common MATHEMATICAL ITALIC SMALL L
U+1D48D GC=Ll SC=Common MATHEMATICAL BOLD ITALIC SMALL L
U+1D4C1 GC=Ll SC=Common MATHEMATICAL SCRIPT SMALL L
U+1D4F5 GC=Ll SC=Common MATHEMATICAL BOLD SCRIPT SMALL L
U+1D529 GC=Ll SC=Common MATHEMATICAL FRAKTUR SMALL L
U+1D55D GC=Ll SC=Common MATHEMATICAL DOUBLE-STRUCK SMALL L
U+1D591 GC=Ll SC=Common MATHEMATICAL BOLD FRAKTUR SMALL L
U+1D5C5 GC=Ll SC=Common MATHEMATICAL SANS-SERIF SMALL L
U+1D5F9 GC=Ll SC=Common MATHEMATICAL SANS-SERIF BOLD SMALL L
U+1D62D GC=Ll SC=Common MATHEMATICAL SANS-SERIF ITALIC SMALL L
U+1D661 GC=Ll SC=Common MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
U+1D695 GC=Ll SC=Common MATHEMATICAL MONOSPACE SMALL L
U+001C0 ǀ GC=Lo SC=Latin LATIN LETTER DENTAL CLICK
U+00399 Ι GC=Lu SC=Greek GREEK CAPITAL LETTER IOTA
U+1D6B0 GC=Lu SC=Common MATHEMATICAL BOLD CAPITAL IOTA
U+1D6EA GC=Lu SC=Common MATHEMATICAL ITALIC CAPITAL IOTA
U+1D724 GC=Lu SC=Common MATHEMATICAL BOLD ITALIC CAPITAL IOTA
U+1D75E GC=Lu SC=Common MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
U+1D798 GC=Lu SC=Common MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
U+02C92 Ⲓ GC=Lu SC=Coptic COPTIC CAPITAL LETTER IAUDA
U+00406 І GC=Lu SC=Cyrillic CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
U+004C0 Ӏ GC=Lu SC=Cyrillic CYRILLIC LETTER PALOCHKA
U+005D5 ו GC=Lo SC=Hebrew HEBREW LETTER VAV
U+005DF ן GC=Lo SC=Hebrew HEBREW LETTER FINAL NUN
U+007CA ߊ GC=Lo SC=Nko NKO LETTER A
U+02D4F ⵏ GC=Lo SC=Tifinagh TIFINAGH LETTER YAN
U+0A4F2 ꓲ GC=Lo SC=Lisu LISU LETTER I
निफ्टी हालांकि यह भी बेहतर हो जाता है। डेटाफाइल में केवल एकल-कोडपॉइंट confusables शामिल नहीं है, लेकिन यह भी confusables है कि कुछ मामलों में कई कोड अंक की आवश्यकता हो सकती है। उदाहरण के लिए, यहां एक ऐसा सेट है, इस बार फ़ाइल-मूल प्रारूप में:
# C̦ С̡ Ç Ҫ
( C̦ ) 0043 0326 LATIN CAPITAL LETTER C, COMBINING COMMA BELOW
← ( С̡ ) 0421 0321 CYRILLIC CAPITAL LETTER ES, COMBINING PALATALIZED HOOK BELOW
← ( Ç ) 00C7 LATIN CAPITAL LETTER C WITH CEDILLA # →Ҫ→→С̡→
← ( Ҫ ) 04AA CYRILLIC CAPITAL LETTER ES WITH DESCENDER # →С̡→
क्या यह सूजन नहीं है? एकमात्र हिचकिचाहट तब तक है जब तक आप आईसीयू कक्षाओं का उपयोग नहीं करते हैं, आपको यूटीएस # 39 डेटाफाइल से अपना खुद का रोल करना होगा।
चूंकि कोई अन्य भाषा बाइंडिंग नहीं है, जिसके बारे में मुझे पता है, मैंने रीजिक्स इंजन में \p{X-Confusable=I}
लिखने की आईसीयू शैली की नकल करने के लिए पर्ल बाइंडिंग बनाने के लिए अपनी ᴛᴏᴅᴏ सूची में जोड़ा है।
ध्यान दें कि आप भी दोनों UTS # 36 और UTS विचार करने के लिए # 39 है, जो आईसीयू SpoofChecker
वर्ग आप के लिए संभालती चाह सकते हैं। यह विशेष रूप से यूआरआई-प्रकार की चीजों के लिए है (पढ़ें: इंटरनेट पहचानकर्ता, जो प्रतिबंधित चरित्र सेट का उपयोग करते हैं), न केवल किसी भी पुराने मनमाना पाठ।
"दृश्यमान रूप से अलग करने योग्य" एक व्यक्तिपरक संपत्ति है। पत्थर में नक्काशीदार पहला रोमन जो भी हेल्वेतिका 1 जैसा नहीं दिखता था। –