मुझे पता है कि उपयोग करने के लिए एन्कोडिंग निर्दिष्ट किए बिना जावा में फ़ाइल लोड करना प्लेटफ़ॉर्म निर्भर है। लेकिन मेरा प्रश्न है .java स्रोत फाइलों में निहित पाठ: क्या उन फ़ाइलों के लिए एन्कोडिंग अभी भी प्रासंगिक है एक बार संकलित?जावा स्रोत फाइलें - संकलित होने पर अभी भी एन्कोडिंग प्रासंगिक है?
उदाहरण के लिए, अगर मैं जो Cp1252
एन्कोड किया गया है और शामिल है विंडोज पर एक test.java
फ़ाइल है:
private String encodingTest = "Bœuf fûmé";
अगर मैं यह -encoding Cp1252
का उपयोग कर संकलन, क्या होता है वास्तव में जिसके परिणामस्वरूप .class
में इस पाठ के लिए? क्या एन्कोडिंग अभी भी मायने रखती है? या संकलन करते समय जावा द्वारा मानकीकृत एन्कोडिंग है?
परिणामस्वरूप .class
प्लेटफॉर्म पर निर्भर करेगा? यदि मैं विंडोज, लिनक्स, सोलारिस पर इस पाठ को आउटपुट करता हूं तो क्या मेरा एक अलग परिणाम हो सकता है? क्या सर्वर पर एन्कोडिंग कॉन्फ़िगरेशन इस पाठ को किसी अन्य तरीके से प्रस्तुत करने पर प्रभाव डाल सकता है?
मुझे लगता है कि अगर परिणामी '.class' प्लेटफॉर्म पर निर्भर था, तो यह जावा के मुख्य विचारों में से एक को तोड़ देगा - एक बार लिखें, कहीं भी चलाएं। मैं * विश्वास करता हूं कि जावा में 'char' मान यूनिकोड में एन्कोड किए गए हैं, लेकिन जैसा कि मेरे पास कोई स्रोत नहीं है, मैं इसे उत्तर के रूप में पोस्ट नहीं करूंगा। मेरा अनुमान है कि '-कोडिंग' क्या करता है संकलक को बताता है कि स्रोत फ़ाइल एन्कोडिंग क्या है, इसलिए आप बाइटकोड में कुछ अलग हो सकते हैं, लेकिन बाइटकोड * किसी दिए गए चरित्र के लिए एक कैनोलिक प्रतिनिधित्व होना चाहिए। – awksp