एक्सेल में एक सीएसवी प्रकार में एक फ़ाइल को सहेजना हमेशा बीओएम को हटा देता है


15

मैं एक उचित समाधान / स्पष्टीकरण (असफल) खोजने की कोशिश कर रहा हूं ताकि यह पता लगाया जा सके कि CSV प्रकार की फ़ाइल को सहेजते समय Excel BOM को हटाने के लिए क्यों चूकता है।

यदि आपको इस प्रश्न का दोहराव मिल जाए तो कृपया मुझे क्षमा करें । यह गैर-ASCII एन्कोडिंग के साथ CSV फ़ाइलों को पढ़ना संभालता है, लेकिन यह फ़ाइल को वापस सहेजने से नहीं रोकता है (जो कि सबसे बड़ा मुद्दा है)।

यहां मेरी वर्तमान स्थिति है (जो मैं इकट्ठा करने जा रहा हूं वह यूनिकोड वर्णों और एक सीएसवी प्रारूप से निपटने वाले स्थानीयकृत सॉफ़्टवेयर में आम है):

  • हम BOM सेट (0xFFFE) सुनिश्चित करते हुए, UTF-16LE का उपयोग करके CSV प्रारूप में डेटा निर्यात करते हैं। हम यह सुनिश्चित करने के लिए फ़ाइल को हेक्स संपादक के साथ जनरेट करने के बाद सत्यापित करते हैं कि यह सही ढंग से सेट किया गया था।

  • एक्सेल में फ़ाइल खोलें (इस उदाहरण के लिए हम जापानी पात्रों को निर्यात कर रहे हैं) और गवाह है कि एक्सेल सही एन्कोडिंग के साथ फाइल को लोड करता है।

  • इस फ़ाइल को सहेजने का प्रयास आपको एक चेतावनी संदेश के साथ संकेत देगा, जिसमें संकेत मिलता है कि फ़ाइल में ऐसी विशेषताएं हो सकती हैं जो यूनिकोड एन्कोडिंग के साथ संगत नहीं हो सकती हैं, लेकिन पूछती हैं कि क्या आप वैसे भी सहेजना चाहते हैं।

  • यदि आप सहेजें के रूप में संवाद का चयन करते हैं, तो यह तुरंत आपको CSV के बजाय फ़ाइल को "यूनिकोड पाठ" के रूप में सहेजने के लिए कहेगा। यदि आप "CSV" एक्सटेंशन का चयन करते हैं और फ़ाइल को सहेजते हैं तो यह BOM को हटा देता है (जाहिर है सभी जापानी पात्रों के साथ)।

ऐसा क्यों होगा? क्या इस समस्या का कोई हल है, या यह एक्सेल की एक ज्ञात 'बग' / सीमा है?

इसके अतिरिक्त (एक साइड इश्यू के रूप में) ऐसा प्रतीत होता है कि एक्सेल, जब लोड हो रहा है UTF-16LE CSV फ़ाइलों को इनकोड करता है, केवल TAB सीमांकक का उपयोग करता है। फिर, क्या यह एक्सेल का एक और ज्ञात 'बग' / सीमा है?

जवाबों:


6

"एक्सेल एक्स क्यों करता है?" फॉर्म के सवालों का कोई विनम्र जवाब नहीं है।

आप अपने मानक स्थानांतरण प्रारूप के रूप में सिर्फ "यूनिकोड टेक्स्ट के रूप में सहेजें" को क्यों नहीं अपनाते हैं? एक्सेल सेव यह सुनिश्चित करता है कि एक BOM है, TAB को एक सीमांकक के रूप में उपयोग करता है, CSV जैसे फ़ील्ड को कोट करता है ...

वैसे, आप "CSV एक्सटेंशन का चयन न करें"। आपके पास दो विकल्प हैं - प्रारूप और विस्तार। 'Save as type' बॉक्स में यूनिकोड टेक्स्ट के रूप में सहेजने का प्रयास करें और मैन्युअल रूप से एक्सटेंशन को 'फ़ाइल नाम' बॉक्स में csv में बदलें। फिर एक्सेल से बाहर निकलें और विंडोज एक्सप्लोरर में फ़ाइल नाम पर डबल-क्लिक करें। ठीक हो जाता है। कोशिश करो।

ओपी की टिप्पणियों पर चर्चा करने के लिए अपडेट करें :

  • "यूनिकोड टेक्स्ट के रूप में सहेजें" (एक्सेल 2007 में) हमेशा आपकी फ़ाइल को टेक्स्ट एक्सटेंशन के रूप में बचाएगा (मैं पिछले या नए संस्करणों के लिए नहीं बोल सकता)। यह "प्रकार के रूप में सहेजें" का विचार है ...

=> कृपया ध्यान से पढ़ें कि मैंने ऊपर क्या लिखा है और इसे अपने स्वयं के लिए आज़माएं। जब तक आप इसे ओवरराइड नहीं करते : यह आपकी फ़ाइल को एक TXT एक्सटेंशन के साथ बचाएगा txt। 'फाइल नेम' बॉक्स में टाइप करें और टाइप करें csv

  • अपने "एक्सेल सेव को यह सुनिश्चित करने के लिए स्पष्ट करें कि एक BOM है", गलत है।

=> " यूनिकोड टेक्स्ट के रूप में सहेजें " यह सुनिश्चित करता है कि फ़ाइल के सामने UTF-16LE BOM हो। यह कोशिश करो और देखो।

  • यही कारण है कि मैंने पहली जगह में एक सवाल पूछा! अगर मैं एक CSV स्वरूपित फ़ाइल खोलता हूं, जिसमें मेरी फ़ाइल को इंगित करने के लिए BOM होती है, तो एन्कोडिंग UFT-16LE है और Excel के माध्यम से इस फ़ाइल को संशोधित करें, मुझे उम्मीद है कि जब मैं इस फ़ाइल को सहेजूंगा कि एन्कोडिंग चातुर्य में बनी रहे ...

=> और आपकी अपेक्षाएं पूरी नहीं हुई हैं, क्योंकि एक्सेल इनपुट सीएसवी फाइलों के बारे में कोई जानकारी नहीं रखता है। आप जो करना चाहते हैं, उसे करने के लिए मजबूर करने का कोई तरीका नहीं है। इसलिए आप या तो कुछ छोड़ दें या कुछ और आजमाएं, जैसे मैं सुझाव दे रहा हूं।

  • वास्तव में अच्छा क्या होगा जो पहले इन समस्याओं का अनुभव कर चुका है, कृपया अपनी अंतर्दृष्टि प्रदान करें।

=> मैंने इन समस्याओं का अनुभव किया है, चीनी डेटा और एक्सेल 1997 के साथ, वर्षों पहले। मेरे पास आपके प्रश्न का उत्तर देने से पहले, एक्सेल 2003 और एक्सेल 2007 के साथ सत्यापित है कि एक्सेल अभी भी बुरी तरह से व्यवहार कर रहा है। मैंने सत्यापित किया है कि "save as type = Unicode text, extension = CSV" वर्कअराउंड वास्तव में काम करता है। मैंने अपनी अंतर्दृष्टि प्रदान की है।


1
"यूनिकोड टेक्स्ट के रूप में सहेजें" (एक्सेल 2007 में) हमेशा आपकी फ़ाइल को टेक्स्ट एक्सटेंशन के रूप में बचाएगा (मैं पिछले या नए संस्करणों के लिए नहीं बोल सकता)। यह "प्रकार के रूप में सहेजें" का विचार है ... अपने "एक्सेल सेव को यह सुनिश्चित करने के लिए स्पष्ट करें कि एक बीओएम है", गलत है। यही कारण है कि मैंने पहली जगह में एक सवाल पूछा! यदि मैं एक CSV स्वरूपित फ़ाइल खोलता हूं जिसमें मेरी फ़ाइल को इंगित करने के लिए BOM सम्‍मिलित है, तो एन्कोडिंग UFT-16LE है और Excel के माध्यम से इस फ़ाइल को संशोधित करें, मुझे उम्‍मीद है कि जब मैं इस फ़ाइल को सहेज लूंगा कि एन्कोडिंग चातुर्य में बनी रहे तो ... वास्तव में अच्छा क्या होगा कोई है जो पहले इन समस्याओं का अनुभव किया है, कृपया अपनी अंतर्दृष्टि प्रदान करें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.