मैं एक उचित समाधान / स्पष्टीकरण (असफल) खोजने की कोशिश कर रहा हूं ताकि यह पता लगाया जा सके कि CSV प्रकार की फ़ाइल को सहेजते समय Excel BOM को हटाने के लिए क्यों चूकता है।
यदि आपको इस प्रश्न का दोहराव मिल जाए तो कृपया मुझे क्षमा करें । यह गैर-ASCII एन्कोडिंग के साथ CSV फ़ाइलों को पढ़ना संभालता है, लेकिन यह फ़ाइल को वापस सहेजने से नहीं रोकता है (जो कि सबसे बड़ा मुद्दा है)।
यहां मेरी वर्तमान स्थिति है (जो मैं इकट्ठा करने जा रहा हूं वह यूनिकोड वर्णों और एक सीएसवी प्रारूप से निपटने वाले स्थानीयकृत सॉफ़्टवेयर में आम है):
हम BOM सेट (0xFFFE) सुनिश्चित करते हुए, UTF-16LE का उपयोग करके CSV प्रारूप में डेटा निर्यात करते हैं। हम यह सुनिश्चित करने के लिए फ़ाइल को हेक्स संपादक के साथ जनरेट करने के बाद सत्यापित करते हैं कि यह सही ढंग से सेट किया गया था।
एक्सेल में फ़ाइल खोलें (इस उदाहरण के लिए हम जापानी पात्रों को निर्यात कर रहे हैं) और गवाह है कि एक्सेल सही एन्कोडिंग के साथ फाइल को लोड करता है।
इस फ़ाइल को सहेजने का प्रयास आपको एक चेतावनी संदेश के साथ संकेत देगा, जिसमें संकेत मिलता है कि फ़ाइल में ऐसी विशेषताएं हो सकती हैं जो यूनिकोड एन्कोडिंग के साथ संगत नहीं हो सकती हैं, लेकिन पूछती हैं कि क्या आप वैसे भी सहेजना चाहते हैं।
यदि आप सहेजें के रूप में संवाद का चयन करते हैं, तो यह तुरंत आपको CSV के बजाय फ़ाइल को "यूनिकोड पाठ" के रूप में सहेजने के लिए कहेगा। यदि आप "CSV" एक्सटेंशन का चयन करते हैं और फ़ाइल को सहेजते हैं तो यह BOM को हटा देता है (जाहिर है सभी जापानी पात्रों के साथ)।
ऐसा क्यों होगा? क्या इस समस्या का कोई हल है, या यह एक्सेल की एक ज्ञात 'बग' / सीमा है?
इसके अतिरिक्त (एक साइड इश्यू के रूप में) ऐसा प्रतीत होता है कि एक्सेल, जब लोड हो रहा है UTF-16LE CSV फ़ाइलों को इनकोड करता है, केवल TAB सीमांकक का उपयोग करता है। फिर, क्या यह एक्सेल का एक और ज्ञात 'बग' / सीमा है?