पूछे जाने वाले प्रश्न का सरल उत्तर यह है कि उपलब्ध चार्ट स्ट्रिंग्स प्लेटफ़ॉर्म से प्लेटफ़ॉर्म पर भिन्न होती है।
हालांकि, ऐसे छह हैं जो मौजूद होने के लिए आवश्यक हैं, इसलिए उन लोगों के लिए बहुत पहले ही स्थिरांक बनाए जा सकते थे। मैं नहीं जानता कि वे क्यों नहीं थे।
JDK 1.4 ने चारसेट टाइप को पेश करके एक शानदार काम किया। इस समय, वे स्ट्रिंग स्थिरांक प्रदान नहीं करना चाहते थे, क्योंकि लक्ष्य को चारसेट इंस्टेंसेस का उपयोग करके सभी को प्राप्त करना है। तो छह मानक चारसेट स्थिरांक क्यों नहीं प्रदान करें? मैंने मार्टिन बुचोलज़ से पूछा कि क्या वह मेरे ठीक बगल में बैठा हुआ है, और उन्होंने कहा कि वास्तव में कोई बहुत बड़ा कारण नहीं था, सिवाय इसके कि उस समय, चीजें अभी भी आधी-अधूरी थीं - बहुत कम JDK APIs को वापस कर दिया गया था चारसेट को स्वीकार करें, और जो थे, उनमें से चारसेट ओवरलोड ने आमतौर पर थोड़ा खराब प्रदर्शन किया।
यह दुख की बात है कि यह केवल JDK 1.6 में है कि उन्होंने आखिरकार सबसेट ओवरलोड के साथ सब कुछ समाप्त कर दिया। और यह कि यह पश्चगामी प्रदर्शन की स्थिति अभी भी मौजूद है (यही कारण है कि यह अविश्वसनीय रूप से अजीब है और मैं इसे समझा नहीं सकता, लेकिन सुरक्षा से संबंधित है)।
लंबी कहानी छोटी - बस अपने स्वयं के स्थिरांक को परिभाषित करें, या अमरूद के चार्ट्स वर्ग का उपयोग करें जो टोनी द पोनी से जुड़ा हुआ है (हालांकि वह पुस्तकालय वास्तव में अभी तक जारी नहीं हुआ है)।
अपडेट: एक StandardCharsetsवर्ग JDK 7 में है।
MessageDigest#getInstance()बढ़ती है।