मुझे पता है कि कैसे मैं अपने सीएसवी फ़ाइल की एन्कोडिंग को बदल सकते हैं जब मैं इसे आयात और उसे पार्स चाहते हैं।रेल में सीएसवी पार्स दौरान एन्कोडिंग बदलने के लिए
csv = CSV.parse(output, :headers => true, :col_sep => ";")
csv.each do |row|
row = row.to_hash.with_indifferent_access
insert_data_method(row)
end
जब मैं अपने फ़ाइल को पढ़ने, मैं इस त्रुटि मिलती है:
Encoding::CompatibilityError in FileImportingController#load_file
incompatible character encodings: ASCII-8BIT and UTF-8
मैं row.force_encoding('utf-8')
के बारे में पढ़ा है, लेकिन यह काम नहीं करता:
NoMethodError in FileImportingController#load_file
undefined method `force_encoding' for #<ActiveSupport::HashWithIndifferentAccess:0x2905ad0>
धन्यवाद मैं इस कोड है।
इसके बजाय यह एक अलग एन्कोडिंग को परिवर्तित करने की, होगा संकेतों का एक कदम जोड़ना और अलग फाइलों को आउटपुट करना संभव है? उदाहरण के लिए, कुछ हिस्सों में यूटीएफ -8 को एन्कोड किया गया है लेकिन यूटीएफ -16LE दूसरों में है। जब तक हेडर समान होते हैं, तब तक फ़ाइल को filename_utf8.txt पर फ़ाइल करें और दूसरा filename_utf16le.txt पर आउटपुट करें। इस तरह से एन्कोडिंग को मजबूर नहीं करना संभव हो सकता है। – Tyler