है, मैं CSV फ़ाइलों को उत्पन्न कर रहा हूं जिन्हें एक्सेल में प्रकाशित होने के बाद खोला जाना चाहिए और समीक्षा की जानी चाहिए। ऐसा लगता है कि एक्सेल को यूटीएफ -8 की तुलना में एक अलग एन्कोडिंग की आवश्यकता है।रूबी: सीएसवी फाइलें कैसे उत्पन्न करें जिनमें एक्सेल-फ्रेंडली एन्कोडिंग
csv_config = {col_sep: ";",
row_sep: "\n",
encoding: Encoding::UTF_8
}
csv_string = CSV.generate(csv_config) do |csv|
csv << ["Text a", "Text b", "Text æ", "Text ø", "Text å"]
end
जब Excel में इस खोलने, विशेष वर्ण ठीक से प्रदर्शित नहीं किया जा रहा है:
Text a Text b Text æ Text ø Text å
किसी भी विचार कैसे उचित इनकोडिंग को सुनिश्चित करने के लिए
यहाँ मेरी config और पीढ़ी कोड है?
अपनी रूबी फ़ाइल की पहली पंक्ति के रूप में '# एन्कोडिंग: यूटीएफ -8' डालने का प्रयास करें (दूसरा यदि आपके पास हैश-बैंग लाइन है, '#!/Usr/bin/env ruby')। मेरा मानना है कि आप यूटीएफ -8 में * लेखन * कर रहे हैं, लेकिन रुबी स्रोत फ़ाइल को यूएस_एएससीआईआई के रूप में एन्कोड किया गया है। (रुबी 2.0+ के साथ, यूटीएफ -8 में स्रोत एन्कोडिंग डिफ़ॉल्ट) – Amadan
मैं 'रूबी 2.0.0p247 (2013-06-27 संशोधन 41674) [x86_64-darwin12.4.0] का उपयोग कर रहा हूं, इसलिए मुझे लगता है कि मेरा इंस्टॉलेशन पहले से ही है यूटीएफ -8 के लिए डिफ़ॉल्ट। – ChristofferJoergensen
रूबी के साथ कोई अनुभव नहीं। लेकिन एक्सेल अर्धविराम सीमवी फाइलों को खोल सकता है जो यूटीएफ -8 एन्कोडेड हैं। लेकिन फ़ाइल की शुरुआत में बीओएम होना चाहिए। और क्या अर्धविराम का उपयोग डिलीमीटर के रूप में किया जा सकता है लोकेल निर्भर है। तो सबसे अच्छा तरीका टैबलेट सीमांकित सीएसवी और उन यूटीएफ -16LE एन्कोडेड का उपयोग करना है। यह सबसे लोकल स्वतंत्र होना चाहिए। –