2008-09-19 14 views
6

मेरा आवेदन सही ढंग से विभिन्न प्रकार के चरित्र सेटों को संभालता है, लेकिन केवल आंतरिक रूप से - जब मानक WinForms लेबल में टेक्स्ट प्रदर्शित करने की बात आती है तो अंडर टेक्स्टबॉक्स में, ऐसा लगता है कि चीनी वर्णों में समस्याएं हैं।सही फ़ॉन्ट में यूनिकोड वर्ण कैसे प्रस्तुत करें? (सी #/WinForms)

समस्या का उपयोग फ़ॉन्ट (ताहोमा) प्रतीत होता है, क्योंकि जब मैं & प्रतिलिपि बनाता हूं, तो टेक्स्ट पेस्ट करें, या इसे डीबगर में देखें, यह सही तरीके से प्रदर्शित होता है। साथ ही जब मैं इस्तेमाल होने वाले फ़ॉन्ट के रूप में एमएस मिन्चो सेट करता हूं, तो स्क्रीन पर वर्ण ठीक दिखते हैं।

बेशक, मैं पूरे एप्लिकेशन में एमएस मिन्चो का उपयोग नहीं करना चाहता हूं। क्या मुझे प्रदर्शित वर्णों के आधार पर फ़ॉन्ट स्विच करना है, या क्या कोई बेहतर तरीका है जिसे मैंने याद किया है?

+3

सुनिश्चित करें कि आप चीनी के लिए एमएस मिन्को का उपयोग नहीं करते हैं। वह एक जापानी फ़ॉन्ट है। आपको पारंपरिक चीनी के लिए सरलीकृत चीनी और मिंगिलू के लिए सिमहेई या सिमसुन का उपयोग करना चाहिए। वे अलग हैं, और एक मूल तुरंत अंतर को खोज देगा। और बीजीएलएम सही है, आपके साथ कुछ गड़बड़ है, उन्हें सिस्टम द्वारा किए गए फ़ॉन्ट लिंकिंग के कारण ताहोमा के साथ भी बॉक्स से बाहर काम करना चाहिए। –

उत्तर

4

UniScribe, जो कि विंडोज 2000 में पेश किया गया था, को पारदर्शी रूप से संभालना है, जिसका अर्थ है कि यह स्वचालित रूप से आपके द्वारा चुने गए फ़ॉन्ट में मौजूद वर्णों के लिए एक अलग फ़ॉन्ट (जैसे मिन्चो) का उपयोग नहीं करेगा। यही कारण है कि यह डीबगर में सही दिखता है, भले ही डीबगर में उपयोग किए गए फ़ॉन्ट में चीनी वर्ण नहीं हैं। शायद आप ऐसा कुछ कर रहे हैं जो यूनीस्क्रिप्ट को अक्षम करता है, या किसी अन्य तरीके से समस्याग्रस्त है। शायद अगर आप कुछ कोड पेस्ट कर सकते हैं तो समस्या की पहचान करना आसान होगा।

+0

ऐसा लगता है कि यह पुस्तकालय की तरह है जिसे मैं ढूंढ रहा हूं। –

+0

@Stefan यदि आप मानक विकास तंत्र (यानी विजुअल स्टूडियो) का उपयोग करते हैं, तो यूनीस्क्रिप्ट पहले से ही वहां होना चाहिए और आपके लिए काम करना चाहिए (प्रश्न पर मिहाई द्वारा टिप्पणी देखें)। – bzlm

0

सभी फ़ॉन्ट्स में सभी ग्लिफ के लिए डेटा नहीं है जिसे यूनिकोड में व्यक्त किया जा सकता है। आपको एक उपयुक्त फ़ॉन्ट का पता लगाना होगा जिसमें आप चाहते हैं कि सबसेट है।

संपादित करें: बस स्पष्टीकरण के लिए, फ़ॉन्ट्स हैं जो पूर्ण यूनिकोड रेंज को कवर करते हैं, लेकिन अब आप उनमें से एक नहीं हैं।

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