एक स्ट्रिंग अक्षर में एक पूरक यूनिकोड चरित्र (कहें, कोडपॉइंट 10400) कैसे डालें? मैं इस तरह एक सरोगेट जोड़ी डाल की कोशिश की है:एक स्ट्रिंग अक्षर में एक पूरक यूनिकोड चरित्र कैसे रखा जाए?
String text = "TEST \uD801\uDC00";
System.out.println(text);
लेकिन यह काम करने के लिए प्रतीत नहीं होता।
अद्यतन:
अच्छी खबर है, स्ट्रिंग ठीक से निर्माण किया है।
UTF-8 में बाइट सरणी: 54 45 53 54 20 f0 UTF-16 में 90 90 80
बाइट सरणी: फ़े एफएफ 0 54 0 45 0 53 0 54 0 20 d8 1 डीसी 0
लेकिन बुरी समाचार यह है कि यह ठीक से मुद्रित नहीं है (मेरे फेडोरा बॉक्स में) और मैं अपेक्षित प्रतीक के बजाय एक वर्ग देख सकता हूं (मेरा कंसोल यूनिकोड को सही तरीके से समर्थन नहीं करता है)।
क्या मतलब है जब आप कहते हैं कि यह काम करने के लिए प्रतीत नहीं होता? 'Text.charAt (5)' का मूल्य क्या है? – Mats
यह प्रतीक को सही तरीके से मुद्रित नहीं करता है। यह आउटपुट स्ट्रीम के साथ कुछ हो सकता है। – n0rm1e
मेरा मानना है कि "एक छोटा बॉक्स" का उपयोग ऐसे चरित्र का प्रतिनिधित्व करने के लिए किया जाता है जिसके लिए सिस्टम प्रदर्शित नहीं हो सकता है। इसका मतलब यह हो सकता है कि आपके प्रदर्शन में उपयोग किया जाने वाला फ़ॉन्ट जहां आप आउटपुट देखने की कोशिश कर रहे हैं, उस चरित्र के लिए ग्लिफ प्रदान नहीं करता है। – neuralmer