Excel से CSV में टूटे हुए अक्षर नहीं: UTF-8, BOM और सेपरेटर
CSV में ज़्यादातर टूटे अक्षर एन्कोडिंग के मेल न खाने से आते हैं: फ़ाइल UTF-8 में सेव होती है, लेकिन उसे Windows एन्कोडिंग में खोला जाता है। शीट को CSV UTF-8 के रूप में एक्सपोर्ट करें, और अगर फ़ाइल Excel में खुलेगी तो byte order mark (BOM) के साथ। साथ ही वह सेपरेटर चुनें जो आपके लोकेल में चलता है। एक्सपोर्ट से पहले ZIP कोड और फ़ोन नंबर जैसे कॉलम को टेक्स्ट के रूप में फ़ॉर्मेट करें, ताकि शून्य बचे रहें।
Excel से CSV कनवर्टरCSV चाहिए, फ़ाइल Excel में हैमुफ़्त में करें"é" का "é" क्यों बन जाता है
फ़ाइल में अक्षर बाइट के रूप में सेव होता है। UTF-8 में अक्षर é दो बाइट का होता है, C3 और A9। जो प्रोग्राम इन बाइट को Windows-1252 के रूप में पढ़ता है, एक आम Windows एन्कोडिंग, उसे C3 के लिए à और A9 के लिए © दिखता है। इसलिए "café" "café" दिखता है। आप खुद देख सकते हैं: é को UTF-8 में एन्कोड करके नतीजे को Windows-1252 में डिकोड करने पर é मिलता है। ü, ñ या ö भी इसी तरह टूटते हैं।
समाधान अक्षरों को हाथ से बदलना नहीं है। समाधान यह है कि प्रोग्राम को बताया जाए कि फ़ाइल कौन-सी एन्कोडिंग इस्तेमाल करती है।
UTF-8 और BOM
UTF-8 वेब और ज़्यादातर आधुनिक सॉफ़्टवेयर में टेक्स्ट की मानक एन्कोडिंग है। सादी CSV फ़ाइल में ऐसा कोई फ़ील्ड नहीं होता जो बताए कि वह कौन-सी एन्कोडिंग इस्तेमाल करती है, इसलिए प्रोग्राम अंदाज़ा लगाते हैं। byte order mark फ़ाइल की शुरुआत में तीन बाइट होते हैं, EF BB BF, जो उन प्रोग्राम को UTF-8 का संकेत देते हैं जो इसे देखते हैं। Windows पर Excel अक्सर बिना BOM वाली UTF-8 फ़ाइल को अपनी स्थानीय एन्कोडिंग में खोल देता है, इसलिए BOM आम समाधान है।
Excel के हाल के वर्शन में Save As मेनू में CSV UTF-8 विकल्प मिलता है, जो BOM जोड़ता है। आप फ़ाइल को Data, From Text/CSV के ज़रिए भी इंपोर्ट कर सकते हैं और File Origin को 65001, यानी UTF-8, पर सेट कर सकते हैं। BOM की एक कमी है: जो प्रोग्राम इसकी उम्मीद नहीं करता, वह उसे पहले कॉलम के नाम का हिस्सा मान सकता है। ज़्यादातर पार्सर और स्प्रेडशीट प्रोग्राम इसे सँभाल लेते हैं, लेकिन अगर कोई डेटा इंपोर्टर अजीब हेडर बताए, तो BOM हटा दें।
कॉमा या सेमीकोलन
CSV का मतलब है comma-separated values, और RFC 4180 स्पेसिफ़िकेशन में फ़ील्ड कॉमा से अलग होते हैं। कई देशों में, जहाँ 1,5 जैसा दशमलव कॉमा इस्तेमाल होता है (डेढ़ के लिए), Excel की लिस्ट सेपरेटर सेमीकोलन होता है। ऐसे में Excel में खोली गई कॉमा वाली फ़ाइल गलत तरीके से बँट सकती है, और 1,5 जैसा नंबर दो फ़ील्ड बन जाता है।
वह सेपरेटर चुनें जो आपका लक्ष्य प्रोग्राम उम्मीद करता है। Excel से CSV टूल कॉमा, सेमीकोलन और टैब देता है। अगर फ़ाइल किसी ऐसे प्रोग्राम के लिए है जो दशमलव कॉमा वाले लोकेल में चलता है, तो आम तौर पर सेमीकोलन ज़्यादा सुरक्षित विकल्प है।
तारीखें सीरियल नंबर बन जाती हैं
Excel तारीखों को सीरियल नंबर के रूप में सेव करता है, जो एक शुरुआती बिंदु से दिनों की गिनती होती है। 1900 डेट सिस्टम में 1 जनवरी 1900 सीरियल 1 है। Excel 1900 को लीप वर्ष भी मानता है, इसलिए वह 29 फ़रवरी 1900 को गिनता है, जो कभी था ही नहीं, और उसे सीरियल 60 देता है। इस तरह 1 मार्च 1900 सीरियल 61 हो जाता है और उसके बाद की हर तारीख एक दिन खिसक जाती है। यह गड़बड़ी Lotus 1-2-3 से आई थी, और Microsoft ने अनुकूलता के लिए वही सिस्टम रखा है। दूसरे सॉफ़्टवेयर 1 मार्च 1900 से पहले की तारीखें एक दिन की गड़बड़ी के साथ पढ़ सकते हैं।
एक्सपोर्ट करते समय आपको 2023-01-01 की जगह 44927 दिख सकता है, या पुरानी तारीखों में एक दिन का फ़र्क। टूल तारीखों को पढ़ने लायक टेक्स्ट में बदल देता है। अगर आप मैन्युअल एक्सपोर्ट कर रहे हैं, तो तारीख वाले कॉलम को yyyy-mm-dd के ISO रूप में टेक्स्ट बनाएँ, जिसे हर प्रोग्राम एक जैसा पढ़ता है।
शुरुआती शून्य गायब हो जाते हैं
02134 जैसा ZIP कोड टेक्स्ट है, लेकिन Excel टाइप किए गए नंबर को नंबर मानता है, इसलिए वह 2134 दिखाता है। शीट से शून्य गायब हो जाता है, और उससे बनी CSV में भी वह नहीं होगा। 0 से शुरू होने वाले फ़ोन नंबर और लंबे ID नंबरों के साथ भी यही होता है। बहुत लंबे नंबरों के अंक भी गायब हो सकते हैं, क्योंकि Excel लगभग 15 सार्थक अंक ही रखता है।
समाधान यह है कि डेटा दर्ज करने या इंपोर्ट करने से पहले ऐसे कॉलम टेक्स्ट के रूप में सेव करें। जब आप ऐसी CSV खोलें जिसमें शून्य पहले से मौजूद हैं, तो फ़ाइल पर डबल-क्लिक करने के बजाय Data, From Text/CSV का इस्तेमाल करें और कॉलम को Text पर सेट करें।
कोटिंग के नियम
RFC 4180 सामान्य CSV फ़ॉर्मेट को परिभाषित करता है। उसके मुख्य कोटिंग नियम ये हैं:
- जिस फ़ील्ड में कॉमा, डबल क्वोट या लाइन ब्रेक हो, उसे डबल क्वोट में बंद करना होगा।
- कोट किए गए फ़ील्ड के अंदर का डबल क्वोट दो डबल क्वोट के रूप में लिखा जाता है।
- स्पेसिफ़िकेशन में लाइन CRLF से खत्म होती हैं, हालाँकि ज़्यादातर टूल LF भी स्वीकार करते हैं।
उदाहरण के लिए, पंक्ति "Müller, Anna","She said ""ok""" में दो फ़ील्ड हैं: Müller, Anna और She said "ok"। CSV के लिए IANA में दर्ज MIME टाइप text/csv है।
RFC 4180 बिना कोट वाले फ़ील्ड में डबल क्वोट की अनुमति नहीं देता, और कई पार्सर ऐसी पंक्ति को अस्वीकार कर देते हैं या गलत तरीके से बाँट देते हैं। फ़ील्ड को सही तरीके से कोट करें, या भटका हुआ अक्षर हटा दें।
एक्सपोर्ट से पहले की चेकलिस्ट
- CSV UTF-8 के रूप में एक्सपोर्ट करें, और अगर फ़ाइल Excel में खुलेगी तो BOM के साथ।
- वह सेपरेटर चुनें जो आपका लक्ष्य प्रोग्राम उम्मीद करता है।
- ZIP कोड और फ़ोन नंबर जैसे ID-जैसे कॉलम टेक्स्ट के रूप में फ़ॉर्मेट करें।
- तारीखें yyyy-mm-dd में लिखें।
- फ़ाइल को सादे टेक्स्ट एडिटर में खोलें और पहली पंक्ति तथा अक्षर वाले नामों के नमूने की जाँच करें।
नॉन-ब्रेकिंग स्पेस जैसे छिपे हुए अक्षर भी इंपोर्ट में गड़बड़ी कर सकते हैं। छिपे हुए अक्षर हटाएं टूल उन्हें ढूँढकर हटाता है, और टेक्स्ट में छिपे हुए अक्षर बताता है कि वे कहाँ से आते हैं। फ़ाइल साफ़ होने के बाद, CSV से JSON उसे डेवलपर के लिए बदल सकता है, जैसा CSV से JSON और वापस में बताया गया है।
एक्सपोर्ट से पहले सेल खुद भी जाँचने लायक हैं: एक्सेल फ़ॉर्मूला जाँचकर्ता उन फ़ॉर्मूला की सूची देता है जो एरर दिखाते हैं या किसी दूसरी फ़ाइल की ओर इशारा करते हैं, और ठीक यही सेल CSV में खाली आते हैं। एक्सपोर्ट के बाद, दो स्प्रेडशीट की तुलना करें से देखें कि वर्शन के बीच क्या बदला।
त्वरित जवाब
मेरी फ़ाइल एक प्रोग्राम में सही और Excel में टूटी हुई क्यों दिखती है? जब UTF-8 फ़ाइल में BOM नहीं होता, तो Windows पर Excel उसे अपनी स्थानीय एन्कोडिंग में पढ़ सकता है। BOM जोड़ने से, या UTF-8 चुनकर इंपोर्ट करने से यह ठीक हो जाता है।
क्या Mac के Excel को BOM की ज़रूरत है? कुछ स्रोत कहते हैं कि हाँ, इसलिए भेजने से पहले किसी अक्षर वाले नाम वाली फ़ाइल से जाँच लें।
क्या एक्सपोर्ट के बाद तारीखें ठीक की जा सकती हैं? हाँ, अगर वे अब भी सीरियल नंबर हैं। लेकिन बेहतर है कि शुरुआत से ही उन्हें yyyy-mm-dd में एक्सपोर्ट करें।
क्या कन्वर्ट करते समय मेरी स्प्रेडशीट अपलोड होती है? टूल आपके ब्राउज़र में चलता है, इसलिए फ़ाइल आपकी अपनी डिवाइस पर ही प्रोसेस होती है। आप इसे अपलोड जाँच गाइड से देख सकते हैं।
अंग्रेज़ी मूल से AI की मदद से अनुवादित।
टिप्पणियाँ
अभी कोई टिप्पणी नहीं। पहली टिप्पणी आप करें।


