हैलो और मेरी पोस्ट पढ़ने के लिए धन्यवाद।संकलन (javac) एक यूटीएफ 8 एन्कोडेड जावा स्रोत कोड बीओएम
मेरी समस्या निम्न है: मैं एक जावा स्रोत फ़ाइल को "javac" के साथ संकलित करना चाहता हूं, इस फ़ाइल के साथ एक बीओएम (ओएस WinXP) के साथ एन्कोडेड यूटीएफ -8 है।
1) "नोटपैड" के साथ एक फ़ाइल बनाएँ और UTF-8 एन्कोडिंग
dos> notepad Test.java
"File -> Save as..."
File name : Test.java
Save as type: All Files
Encoding : UTF-8
Save
2) उस फ़ाइल में एक जावा वर्ग बनाएं चुनें और फाइल सेव:
नीचे मैं क्या कर रहा है 1 में की तरह)
public class Test
{
public static void main(String [] args)
{
System.out.println("This is a test.");
}
}
3) कल्पना फ़ाइल का हेक्साडेसिमल संस्करण (पहली पंक्ति)
dos> xxd Test.java | head -1
0000000: efbb bf70 7562 6c69 6320 636c 6173 7320 ...public class
नोट: एफई bb BF के UTF-8 एन्कोडेड बीओएम (UTF-16 एन्कोडेड बीओएम जा रहा है एफई एफएफ) है।
4) "javac"
dos> javac -encoding utf8 Test.java
Test.java:1: illegal character: \65279
?public class Test
^
1 error
नोट के साथ इस कोड को संकलित करने का प्रयास करें: 65,279 बीओएम की दशमलव संस्करण है।
मेरा प्रश्न है निम्नलिखित: यह UTF-8 एन्कोडेड
- : कैसे मैं के साथ इस संकलन का काम कर सकते हैं?
मदद और सर्वोत्तम संबंधों के लिए धन्यवाद।
लेय
यह सही है: आपको बीओएम को हटाना होगा। इसका यूटीएफ -8 में कोई व्यवसाय नहीं है, इसलिए निश्चित रूप से यह एक त्रुटि है। यह एक लंबे समय से चलने वाला माइक्रोसॉफ्ट बग है। यूटीएफ -8 में कभी भी बीओएम न रखें !!!!! – tchrist
हैलो। आपके उत्तर के लिए धन्यवाद। मैंने फ़ाइल को "बीओएम के बिना यूटीएफ 8" के रूप में एन्कोड करने के लिए "नोटपैड ++" का उपयोग किया था। "javac" के साथ कोड संकलित अब काम करता है। –
@ क्रिसमस [यूनिकोड मानक (पृष्ठ 30)] (http://www.unicode.org/versions/Unicode6.0.0/ch02.pdf) यूटीएफ -8 में बीओएम की अनुमति देता है ताकि आपको वहां रखने का हर अधिकार हो अगर आप चाहें तो। आप एक और कहानी क्यों चाहते हैं, लेकिन 'जावैक' को इसे संभालना चाहिए। – ArtB