java - क्या एंट अपने सिस्टम की डिफ़ॉल्ट सीपी 1252 के बजाय यूटीएफ-8 के साथ एक्लिप्स में 'जावा' को निष्पादित करेगा?




eclipse encoding (2)

पिछले हफ्ते मैं यह समझने की कोशिश कर रहा था कि मेरे नये अपनाने वाले आवेदन को डिकोड करने के लिए कुछ धारा क्यों कर रही है, मुझे कुछ प्रमुख एन्कोडिंग समस्याओं आखिरकार मुझे यह पता चल गया कि समस्या यह थी कि जार / युद्ध चींटी के साथ बनाया जा रहा है और सर्वर पर तैनात किया जा रहा है, सीएपी 1252 के सिस्टम्स डिफॉल्ट के बजाय एन्कोडिंग यूटीएफ -8 का इस्तेमाल करते हुए जावैक कार्य के साथ संकलित किया जा रहा था।

यह विशेष रूप से इन विशेष पात्रों के लिए कई कठिन कोडित स्ट्रिंग / वर्ण होने के कारण होता है।

यह निम्न चरणों में से किसी एक से आसानी से सुलझाया गया था:

  • सर्वर पर बाइट कोड से मेल करने के लिए यूटीएफ -8 के ग्रहण परियोजना के लिए एन्कोडिंग बदलना
  • क्लाइंट बाइट कोड से मेल करने के लिए युद्ध फ़ाइल बनाने के लिए javac कार्य के लिए एन्कोडिंग को सीपी 1252 के रूप में सेट करना
  • और अजीब तरह से एंट को किसी भी एन्कोडिंग को निर्दिष्ट किए बिना कमांड प्रॉम्प्ट से चलाना

तो ईटिप्स को यूटीएफ -8 में क्यों बदल रहा है? क्या यह विन्यास है? मैं इसे कहां कॉन्फ़िगर करूँ?

प्रणाली

  • विंडोज एक्स पी
  • ग्रहण 3.5
  • चींटी 1.7.1
  • जावा 1.6.0_11

चींटी, एक्लिप्स से चलाने के लिए, सभी समान संस्करणों का उपयोग करते हुए (मेरे पास जावा 1.6.0_15 को छोड़कर) मेरी जावा स्रोत फ़ाइलों को Windows-1252 रूप में मानता है मेरे कार्यक्षेत्र और परियोजनाएं डिफ़ॉल्ट सेटिंग का उपयोग कर रही हैं

सर्वर पर बाइट कोड से मेल करने के लिए UTF-8

मुझे यकीन नहीं है कि आप इसका मतलब क्या है - इसका अर्थ है स्रोत फ़ाइलों की एन्कोडिंग, निश्चित रूप से बाइटकोड निर्देशों का एक संरचित सेट है; क्लास फ़ाइलों में निर्मित स्ट्रिंग लिटरल्स हमेशा यूटीएफ -8 हैं

मैं अपनी फ़ाइलों को अधिक एन्कोडिंग- अज्ञेयवादी बनाने के लिए यूनिकोड एस्केप अनुक्रमों का उपयोग करेगा। आप इस के साथ मदद करने के लिए देशी2ascii या java.nio.charset एपीआई जैसे उपकरण का उपयोग कर सकते हैं।


कमांड लाइन पर एंट का उपयोग करते समय, यह स्वचालित रूप से सिस्टम डिफ़ॉल्ट एन्कोडिंग का उपयोग करता है, जो आपके सिस्टम पर खिड़कियां -1252 लगता है।

एक्ट से एक्लिप्स का उपयोग करते समय, यह निर्धारित करने के लिए कि कौन सा इस्तेमाल किया जाना चाहिए, स्रोत फ़ाइलों / फ़ोल्डरों की स्थानीय एन्कोडिंग प्रॉपर्टी पढ़ता है यह गुण गुण संवाद के संसाधन पृष्ठ में उपलब्ध है, जब एक स्रोत फ़ोल्डर पर राइट-क्लिक किया जाता है।

जब कुछ भी निर्दिष्ट नहीं किया जाता है, तो कार्यस्थान विस्तृत डिफ़ॉल्ट एन्कोडिंग का उपयोग किया जाता है। यह विंडो> वरीयताएँ संवाद के साथ विन्यास योग्य है

उम्मीद है की यह मदद करेगा।