2010-10-26 14 views
9

में यूनिकोड वर्ण प्रदर्शित करें इस विषय पर इंटरनेट पर कई पोस्ट हैं, हालांकि उनमें से कोई भी समस्या को अलग करने और हल करने में सक्षम नहीं है।टेक्स्टव्यू एंड्रॉइड

मैं टेक्स्टव्यू का उपयोग कर SQLite डेटाबेस में संग्रहीत कुछ विशेष यूटीएफ -8 एन्कोडेड प्रतीकों को दिखाने की कोशिश कर रहा हूं, हालांकि यह सब दिखाता है कि यह बॉक्स है। मैं समझता हूं कि इसका क्या अर्थ है कि सही फ़ॉन्ट स्थापित नहीं है। लेकिन जब मैक पर एरियल फ़ॉन्ट का उपयोग करके उन प्रतीकों को प्रिंट करता हूं तो यह काम करता है।

मैं डिवाइस और एमुलेटर पर एरियल टाइपफेस का उपयोग करने की कोशिश कर रहा हूं।

कोई सलाह।

उत्तर

3

यदि मैं आपकी स्थिति को सही ढंग से समझ रहा हूं, तो आप StringEscapeUtils.unescapeXml() विधि पर विचार करना चाहेंगे। यह यहां उपलब्ध सामान्य-lang.jar फ़ाइल में है: http://commons.apache.org/lang/

यह एन्कोडेड प्रतीकों (उदाहरण के लिए ' एक एस्ट्रोफ़े के लिए) ले जाएगा और आपको एक उचित चरित्र पर ले जाएगा।

7

यह आपके मैक पर काम करता है क्योंकि आपके मैक द्वारा उपयोग किए गए फ़ॉन्ट में वे विशेष वर्ण हैं। एक फ़ॉन्टफाइल बनाना असंभव होगा जिसमें यूनिकोड में परिभाषित सभी वर्ण शामिल हैं। चीनी फोंट एक अच्छा उदाहरण हैं: उनमें से कोई भी ~ 60,000 ज्ञात चीनी वर्णों में से कोई नहीं है क्योंकि फ़ॉन्ट फ़ाइल विशाल और अनुपयोगी होगी।

आप एंड्रॉइड पर अपने मैक से फ़ॉन्ट का उपयोग करने का प्रयास कर सकते हैं (कॉपीराइट समस्या हो सकती है - वर्णों वाले एक मुक्त फ़ॉन्ट को खोजने का प्रयास करें: अपने आवेदन में (ttf) फ़ाइल पैकेज करें, उदाहरण के लिए/संपत्ति फ़ोल्डर में, और तो आपके आवेदन लोड कि

टाइपफेस टाइपफेस के साथ फ़ॉन्ट = Typeface.createFromAsset (assetmanager, "fontfile.ttf") में;

फिर आप इस एक TextView में इतनी तरह उपयोग कर सकते हैं:

टेक्स्ट व्यू व्यू = (टेक्स्ट व्यू) findById (R.id.mytext);

view.setTypeFace (TypeFace);

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