अंतर्राष्ट्रीयकरण Java 9 में संवर्द्धन में शामिल हैं यूनिकोड 8.0 , UTF-8 properties फ़ाइलें और CLDR enabling को सक्षम करना स्थानीय डेटा डिफ़ॉल्ट रूप से। Java 9 यूनिकोड . तक का समर्थन करता है 8.0 मानक 10,555 वर्णों, 29 लिपियों और 42 ब्लॉकों के साथ।
Java 9 में, गुण फ़ाइलें UTF-8 एन्कोडिंग . में लोड की जाती हैं . डिफ़ॉल्ट रूप से, किसी इनपुट स्ट्रीम को पढ़ना MalformedInputException . को फेंकता है या अनमैपेबल कैरेक्टर एक्सेप्शन . इस मामले में, PropertyResourceBundle इंस्टेंस को अपवाद से पहले किसी स्थिति में रीसेट किया जाता है, ISO-8859-1 में इनपुट स्ट्रीम को फिर से पढ़ता है , और पढ़ना जारी रखता है।
अगर PropertyResourceBundle. एन्कोडिंग या तो ISO-8859-1 पर सेट हो गई है या UTF-8 , फिर PropertyResourceBundle उदाहरण उस एन्कोडिंग में एक इनपुट स्ट्रीम पढ़ें, और एक अमान्य अनुक्रम का सामना करने पर अपवाद फेंक दें। PropertyResourceBundle . को इनिशियलाइज़ करते समय सिस्टम प्रॉपर्टी को पढ़ा और मूल्यांकन किया जाता है वर्ग, तो कोई भी कार्रवाई जो संपत्ति को बदलती या हटाती है उसका कोई प्रभाव नहीं पड़ता है।
यदि हम ISO-8859-1 . निर्दिष्ट करते हैं :
- ऐसे वर्ण जिन्हें ISO-8859-1 . में प्रदर्शित नहीं किया जा सकता है एन्कोडिंग यूनिकोड . द्वारा दर्शाया जाना चाहिए बच निकला ।
- अन्य एन्कोडिंग मानों ने इस सिस्टम की संपत्ति को अनदेखा कर दिया है।
अगर कोई समस्या है, तो हम नीचे दिए गए विकल्पों पर विचार कर सकते हैं:
- गुण फ़ाइल रूपांतरित करें UTF-8 एन्कोडिंग . में ।
- रनटाइम सिस्टम गुण निर्दिष्ट करें।
java.util.PropertyResourceBundle.encoding=ISO-8859-1