2010-01-20 12 views
7

मैं जावा में एसएमपी (पूरक बहुभाषी विमान) के साथ काम करना चाहता हूं। दरअसल, मैं ऐसे चरित्र को मुद्रित करना चाहता हूं जिसका कोडपॉइंट 0xFFFF से अधिक है। मैंने कोड की इस पंक्ति का उपयोग किया:जावा में यूनिकोड पूरक बहुभाषी विमान

int hexCodePoint = Character.toCodePoint('\uD801', '\uDC02'); 

एक विशेष चरित्र के कोडपॉइंट के लिए। लेकिन मैं इस यूनिकोड चरित्र को कंसोल पर कैसे प्रिंट कर सकता हूं?

आपकी मदद के लिए अग्रिम धन्यवाद।

उत्तर

5
String s = new StringBuilder().append("Here is a codepoint: ").appendCodePoint(hexCodePoint).toString(); 
System.out.println(s); 

ध्यान दें कि Windows में यह सांत्वना

संपादित की सीमित यूनिकोड क्षमताओं की वजह से उम्मीद उत्पादन का उत्पादन नहीं होता: char[]

4
System.out.println("\uD801\uDC02"); 

निर्माण करने के लिए अब, चाहे यू या Character.toChars(hexCodePoint) +10402 (& # x10402;) वास्तव में कंसोल पर चालू होता है:

  1. क्या एन्कोडिंग System.out कनवर्ट करने के लिए डेटा को एक हानिकारक एन्कोडिंग में बदल देगा (जैसे विंडोज़ "एएनएसआई" कोडपेज या मैकरोमन); defaultCharset()
  2. देख सांत्वना एन्कोडिंग System.out करने के लिए डेटा बदल देती समर्थन करता है या
  3. सांत्वना चरित्र
के लिए फ़ॉन्ट समर्थन हासिल है कि क्या (कभी कभी, यह विंडोज शान्ति जो पुराने OEM मैपिंग का उपयोग पर डिफ़ॉल्ट है)

इन समस्याओं के समाधान प्लेटफार्म-विशिष्ट होंगे।

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