我正在尝试通过Dropbox Core api从我的保管箱解析CSV文件的内容(保存在Windows Excel上然后上传到保管箱)。
我使用以下代码创建了一个rake任务(Rails应用程序的一部分),它在我的本地硬盘驱动器上创建了一个magnum-opus.csv文件,该文件在Excel文件中包含原始文本。通过调用contents.encoding
,内容的编码是ASCII-8BITcontents, metadata = client.get_file_and_metadata('/magnum-opus.csv')
open('magnum-opus.csv', 'w') {|f| f.puts contents }
我想将“内容”中的二进制数据动态转换为可读文本而不是创建本地文件,而是通过它进行解析。我不想将它保存在任何地方,然后必须打开它。
我该怎么做?
如果
p contents
我最终得到某种类型的不可读数据格式...... \ x00e \ x00d \ x00u
1)如何将其转换为我可以使用Ruby解析的字符串? 2)我想知道的另一件事 - 如果:
puts contents
CSV文件中人类可读的原始文本输出到STDOUT。什么是做什么?
我试过了:
calling CSV.parse on contents.encode( "UTF-8", "binary", :invalid => :replace, :undef => :replace, :replace => '') but end up getting an error such as
CSV :: MalformedCSVError:不带引号的字段不允许\ r或\ n