2011-12-08 32 views
19

मेरे पास CSV फ़ाइल विशेष उच्चारण के साथ है और इसे यूटीएफ -8 एन्कोडिंग का चयन करके नोटपैड में सहेज रही है। जब मैं जावा का उपयोग कर फ़ाइल पढ़ता हूं, तो यह भी बीओएम पात्रों को पढ़ता है।बीओएम के बिना यूटीएफ -8 में टेक्स्ट को सहेजने के लिए नोटपैड कैसे बनाएं?

तो मैं नोटपैड में शुरू में एक बीओएम जोड़कर बिना UTF-8 प्रारूप में इस फ़ाइल सहेजना चाहते हैं।

अन्यथा वहाँ किसी भी अंतर्निहित जावा में वर्ग कि बीओएम अक्षर है कि शुरुआत में पेश समाप्त है, जब एक फाइल में सामग्री पढ़ने?

+1

शायद ... यूटीएफ 8 टेक्स्ट से निपटने के लिए नोटपैड का उपयोग न करें? नोटपैड ++ या जेडिट जैसे पाठ संपादकों की किसी अन्य भीड़ को आज़माएं। – cdeszaq

+1

नोटपैड में ऊपर सुविधा बनाना ही यह माइक्रोसॉफ्ट के साथ आता है के रूप में :) – user1058036

उत्तर

30
  1. Notepad++ का उपयोग करें - नोटपैड से मुक्त और बहुत बेहतर। यह बीओएम बिना Enconding UTF-8 में>एनकोड का उपयोग कर बीओएम बिना पाठ को बचाने के लिए मदद मिलेगी: Screenshot of the Notepad++ Menubar > Encoding > Encode in UTF-8 without BOM menu in Notepad++ v6.7.9.2

  2. जब मैं जावा में इस समस्या का सामना करना पड़ा, मैं इन पहले तीन पार्स करने के लिए किसी भी पुस्तकालय नहीं मिला है बाइट्स (बीओएम)। तो मेरी सलाह:

    • PushbackInputStream(in, 3) का उपयोग करें।
    • पढ़ें पहले तीन बाइट्स
    • यदि यह बीओएम (एफई बी बी बीएफ) नहीं है, UTF-8
+0

क्या आपको एक बेहतर तरीका मिला है? – korifey

+0

मैं अगर मैं आँख बंद करके बाइट्स बंद अलग करना साथ bytes.Problem बंद अलग करना तुलना में एक बेहतर रास्ता मिल गया इस पोस्ट now.Will में देख रहा हूँ 'है मैं नहीं कर सकते कहना फ़ाइलें सहेजी जाती हैं साथ ही utf-8.It एएनएसआई में भी इनकोडिंग जा सकता है । ' – user1058036

+0

आपको अंधेरे से पट्टी करने की आवश्यकता नहीं है। यदि आप पहले दो बाइट्स का विश्लेषण करते हैं और यह बीओएम है, तो आपके पास 99% संभावना है कि फ़ाइल यूटीएफ -8 में है। केवल इस मामले में आपको उन्हें काट देना चाहिए। वैसे भी कृपया यहां अपना समाधान लिखें जब आपको यह मिल जाएगा। – korifey

0

उत्तर है: बिलकुल नहीं। नोटपैड ऐसा नहीं कर सकता है।

जावा में आप बस अपने इनपुट स्ट्रीम में पहले बाइट को छोड़ सकते हैं और किया जा सकता है।

+0

नोटपैड बाइट जिस क्रम में वर्तमान फ़ाइल इनकोडिंग पहचान करने के लिए फ़ाइल की शुरुआत में कुछ अदृश्य बाइट्स कहते हैं। – user1058036

+0

फिर उचित बाइट्स को छोड़ दें। अगर नोटपैड उन्हें जोड़ता है और आप उन्हें छोड़ने से नोटपैड पर रहना चाहते हैं और सब कुछ ठीक है। –

+0

बाइट्स को अलग करने से किसी अन्य समाधान की जांच करेगा। अगर कुछ भी व्यवहार्य नहीं है, तो मुझे बाइट्स को बंद करना होगा। मैं नहीं कह सकता कि फाइल केवल utf-8 के साथ सहेजी गई हैं। इसे एएनएसआई में भी एन्कोड किया जा सकता है। – user1058036

9

इसके बजाय नोटपैड ++ का उपयोग करें। मेरे personal blog post पर देखें। नोटपैड ++ के भीतर से, "एन्कोडिंग" मेनू चुनें, फिर "बीओएम के बिना यूटीएफ -8 में एनकोड करें"।

+0

मैं के बारे में पता कर रहा हूँ नोटपैड 2 और नोटपैड ++। मैं क्या करना चाहते है कि नोटपैड अपने आप में – user1058036

+0

स्टैंडर्ड विंडोज नोटपैड एक सच्चे संपादक नहीं है, और बीओएम कार्यक्षमता के आसपास किसी भी विकल्प का समर्थन नहीं करता। यदि आप किसी अन्य संपादक का उपयोग नहीं करना चाहते हैं, तो आपको जावा कोड के भीतर बीओएम को सही तरीके से संभालने के लिए यहां अन्य उत्तरों में से किसी एक की सलाह का पालन करना होगा। – ziesemer

0

आप Notepad2 या Notepad++ बाहर की कोशिश करना चाहते हो सकता है। उन नोटपैड प्रतिस्थापनों में आपके लिए यह विकल्प चुनने का विकल्प है कि बीओएम आउटपुट करना है या नहीं।

जावा समाधान के लिए, जहां तक ​​मुझे पता है, जावा मानक यूटीएफ -8 को समझ में नहीं आता है। मैं googled और Java's UTF-8 and Unicode writing is broken - Use this fix पाया कि समाधान हो सकता है।

0

हम प्रयोग कर रहे हैं के रूप में उन्हें वापस धारा धक्का

  • प्रक्रिया यदि वर्तमान में हमारे इनपुट से बीओएम को पट्टी करने के लिए उपयोगिता BOMStripperInputStream.java

  • 8

    मैं बस के रूप में @ मार्टिन-Geisler बताते हैं, this Stack Overflow post से सीखा है, कि तुम एन्कोडिंग के रूप में एएनएसआई का चयन विंडोज नोटपैड में बीओएम के बिना फ़ाइलों को सहेज सकते, द्वारा।

    मुझे लगता है कि अधिक उन्नत उपयोगों के लिए यह काम नहीं करेगा क्योंकि परिणामस्वरूप फ़ाइल शायद अंत एन्कोडिंग की इच्छा नहीं है, लेकिन वास्तव में एएनएसआई; लेकिन मैंने केवल इन नोटपैड का उपयोग करके बीओएम के बिना एक बहुत छोटी .php स्क्रिप्ट को सहेजने के लिए इस काम का परीक्षण किया और पुष्टि की।

    मैं लंबे समय से, मुश्किल तरीके से सीखा है कि विंडोज 'नोटपैड एक सच्चे संपादक, नहीं है हालांकि मैं जब आप लिखते हैं "संपादक दूसरों, इस के बावजूद, यह गुमराह है कि बुलाया के लिए बाहर बिंदु करना चाहते हैं "नई विंडोज मशीनों पर, कम से कम एक में से एक पर।

    मैं वर्तमान में Emacs और अन्य संपादकों उपयोग कर रहा हूँ इस समस्या को हल करने के लिए।

    +0

    नोटपैड ++ में एएनएसआई चुनने के लिए मेरे लिए काम किया, लेकिन इसे बीओएम नहीं किया गया – paul