2013-12-18 5 views
7

अगर एक यूनिकोड चरित्र पूरी चौड़ाई है जाँच कैसे है?सी जाँच ++ यदि यूनिकोड चरित्र पूरी चौड़ाई

मैं Win32/MFC

उदाहरण के लिए उपयोग करते हैं, , पूरी चौड़ाई है A पूरी चौड़ाई नहीं है, पूरी चौड़ाई है, F पूरी चौड़ाई नहीं है।

+0

आपको एहसास है कि सवाल बकवास है। एक स्ट्रिंग का अर्थ कुछ भी नहीं है यदि आप इसके एन्कोडिंग के बारे में कुछ भी नहीं जानते हैं। कृपया इस अच्छी कला को देखें जो इस मामले पर कुछ प्रकाश डालना चाहिए -> http://www.joelonsoftware.com/articles/Unicode.html – Pandrei

+1

+1 आपके प्रश्न ने मुझे आज और कुछ सीख लिया! – Roddy

+0

@ पांडेरी मैं उस लेख की सिफारिश नहीं करूंगा। हालांकि यह एक या दो उपयोगी बिंदु बनाता है, इसमें कुछ त्रुटियां भी हैं: शुरुआत करने वालों के लिए, लेखक _UCS_ और _UTF_ अंतर को समझ में नहीं आता है। –

उत्तर

-2

क्या आप "पूरी चौड़ाई" द्वारा मतलब है? एक चरित्र की चौड़ाई उस फ़ॉन्ट पर निर्भर करती है जिसमें इसे प्रदर्शित किया जा रहा है।

यदि आपका मतलब है कि यह एक बाइट वर्ण है या नहीं, तो यह अभी भी स्पष्ट नहीं है। एन्कोडिंग में एक बाइट वर्ण? यूटीएफ -8 में, यह एक बाइट वर्ण होगा यदि (और केवल अगर) कोड बिंदु 128 से कम है; आप UTF-16 उपयोग कर रहे हैं (संभावित, के बाद आप Windows के तहत कर रहे हैं), बस 128. आईएसओ 8859-1 (एक और व्यापक फैल एन्कोडिंग) में एक एकल बाइट एन्कोडिंग के साथ चरित्र की तुलना: 256 के लिए के साथ तुलना करें कुछ भी 256 से कम, UTF-16 यूनिट आईएसओ 8859-1 (कभी कभी लैटिन -1 के रूप में जाना जाता है) में संख्यानुसार कोड बात करने के लिए समान होगा। एकल बाइट एएससीआईआई एन्कोडिंग के लिए (लगभग आज कभी भी उपयोग नहीं किया गया, लेकिन के अधिकांश सामान्य एन्कोडिंग पहले 128 कोड अंक के लिए समान हैं), 128 से कम कुछ भी अच्छा है।

+1

http://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms – Roddy

+0

@ रोडी जो अधिक समझ में आता है। मुझे अपने यूनिकोड एन्कोडिंग में अपना दूसरा पूर्ण चौड़ाई वाला चरित्र देखना चाहिए था। (बेशक, इसका मूल रूप से मतलब है कि कोई आसान जवाब नहीं है।) –

8

आप क्या जरूरत है चरित्र की East Asian Width पुनः प्राप्त करने के लिए है। आप यूनिकोड कैरेक्टर डेटाबेस से EastAsianWidth.txt फ़ाइल को पार्स करके इसे कर सकते हैं। मुझे Win32 API नहीं मिला जो यह जानकारी देता है, लेकिन पाइथन में, उदाहरण के लिए, आप unicodedata.east_asian_width(unichr) का उपयोग कर सकते हैं।

समस्या और अधिक जानकारी की पृष्ठभूमि के लिए Annex #11 देखें।

+0

यह सही उत्तर है। एफडब्ल्यूआईडब्ल्यू: यूनिकोड कंसोर्टियम की विभिन्न फाइलों को आसान पार्सिंग के लिए डिज़ाइन किया गया है, इसलिए मशीन से सी ++ तालिका उत्पन्न करना मुश्किल नहीं होना चाहिए। (मैंने यह कई अन्य फाइलों के लिए किया है।) –

+0

क्या पूर्वी एशियाई के अलावा कोई अन्य भाषाएं पूर्ण चौड़ाई वाले पात्र हैं? – linquize

+0

अधिक पूर्ण चर्चा के लिए, यह उत्तर देखें: http://stackoverflow.com/a/9145712/53974 – Blaisorblade

संबंधित मुद्दे