2009-08-27 20 views
45

मुझे आईएसओ -885 9 -1 एन्कोडिंग के साथ जावा स्रोत फाइलें मिली हैं। जब मैं चींटी चलाता हूं, तो मुझे "चेतावनी: यूटीएफ -8 एन्कोडिंग के लिए अप्रत्याशित चरित्र" मिलता है। यदि मैं ant -Dfile.encoding = iso-8859-1 चलाता हूं या प्रत्येक javac कथन में एन्कोडिंग = "आईएसओ -8859-1" जोड़ता हूं तो मैं इससे बच सकता हूं।मैं ant-build.xml के भीतर -Dfile.encoding कैसे सेट करूं?

build.xml के भीतर वैश्विक स्तर पर संपत्ति को सेट करने का कोई तरीका है? < संपत्ति का नाम = "file.encoding" मूल्य = "आईएसओ -885 9 -1" > काम नहीं करता है। मुझे पता है कि मैं प्रत्येक javac कथन में एक foo = ISO-8859-1 गुण जोड़ सकता हूं और एन्कोडिंग = "$ {foo}" सेट कर सकता हूं, लेकिन मैं इससे बचने की कोशिश कर रहा हूं।

+0

समस्या को चार स्थानों पर एक साथ हल किया जाना चाहिए: http://stackoverflow.com/a/34225997/715269 – Gangnus

उत्तर

31

कुछ विकल्प:

  1. अपने ANT_OPTS वातावरण चर को -Dfile.encoding=iso-8859-1 जोड़ने अपने <javac> आमंत्रण एक में एन्कोड
1

चींटी स्वयं सिस्टम गुण सेट नहीं कर सकती है, लेकिन यदि आप वास्तव में चाहते हैं, तो आप एक जावा प्रोग्राम लिख सकते हैं जो सिस्टम प्रॉपर्टी सेट करता है, और एंटी के भीतर से निष्पादित करता है।

61

यदि आपने सभी फ़ाइलों के लिए

  • उपयोग <presetdef> सेटअप डिफ़ॉल्ट पर विशेष रूप से, यह एक विशेष एन्कोडिंग का उपयोग करने के लिए पूरे JVM को मजबूर करने के बजाय जैवैक को बताना सबसे अच्छा है। javac task इस कारण से एक एन्कोडिंग विशेषता है।

    <javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="iso-8859-1" /> 
    

    लेकिन वास्तव में, आपको स्रोत फ़ाइलों को यूटीएफ -8 में परिवर्तित करना चाहिए। सब कुछ यूटीएफ -8 में बेहतर स्वाद लेता है। :)

  • +1

    भले ही आप सामग्री को यूटीएफ -8 में परिवर्तित करते हैं, फिर भी आपको कभी-कभी स्वच्छ वातावरण होना पड़ता है (LC_ALL = C) और वहां बहुत सुंदर काम आता है। – user1050755

    2

    बिल्ड फ़ाइल बदलने से पहले मुझे जावा संकलन त्रुटि नीचे मिल रही है।

    ApplicationConstant.java:73: त्रुटि: एन्कोडिंग ascii के लिए unmappable चरित्र public static final String INVALID_MDTVERSION_SECOND = " This not compatible with the server’s Version";

    मैं जब मैं चींटी जावा लक्ष्य के लिए के रूप में इस्तेमाल इस त्रुटि का सामना करना है:

    <javac encoding="ascii"...> 
    

    मेरे पास है से

    <javac encoding="iso-8859-1" ...> 
    

    इस समस्या को हल किया गया है।