CSV with Ruby 1.9.2 and 1.8.7

R

Ronald R.

Hi all,

I am trying to generate a CSV with the code bellow:

csv_string =3D CSV.generate:)col_sep =3D> "\t") do |csv|
csv << ["row", "of", "CSV", "data"]
csv << ["test", "a=C3=A7=C3=A3o"]
end


But when I try with Ruby 1.8.7 I get the follow error:

ruby-1.8.7-p249/lib/ruby/1.8/csv.rb:326:in `initialize': can't convert
Hash into String (TypeError)

And if I try to call the generate methos without arguments, I get a
error too

If I try with 1.9.2 I get the error:

gerar.rb:35: invalid multibyte char (US-ASCII)
gerar.rb:35: invalid multibyte char (US-ASCII)
gerar.rb:35: syntax error, unexpected $end, expecting ']'


How to fix this?

-- =

Posted via http://www.ruby-forum.com/.=
 
C

Chris Kottom

First and possibly most important, the CSV implementation is completely
different on 1.8 and 1.9, and I'm not sure that the original 1.8.7 version
supports Unicode at all. So while the TypeError is a little bit cryptic,
I'm not sure I can provide a better explanation.

The error under 1.9.2 is because you didn't specify an :encoding in your
call to generate. This works under 1.9.2 on my machine:
csv_string =3D CSV.generate:)col_sep =3D> "\t", :encoding =3D> "UTF-8") do =
|csv|
csv << ["row", "of", "CSV", "data"]
csv << ["test", "a=C3=A7=C3=A3o"]
end
 
R

Ronald

First and possibly most important, theCSVimplementation is completely
different on 1.8 and 1.9, and I'm not sure that the original1.8.7version
supports Unicode at all.  So while the TypeError is a little bit cryptic,
I'm not sure I can provide a better explanation.

The error under1.9.2is because you didn't specify an :encoding in your
call to generate.  This works under1.9.2on my machine:
csv_string =CSV.generate:)col_sep => "\t", :encoding => "UTF-8") do|csv|
   csv<< ["row", "of", "CSV", "data"]
   csv<< ["test", "ação"]
end

I am trying to generate aCSVwith the code bellow:
csv_string =CSV.generate:)col_sep => "\t") do |csv|
   csv<< ["row", "of", "CSV", "data"]
   csv<< ["test", "ação"]
end
But when I try withRuby1.8.7I get the follow error:
ruby-1.8.7-p249/lib/ruby/1.8/csv.rb:326:in `initialize': can't convert
Hash into String (TypeError)
And if I try to call the generate methos without arguments, I get a
Hi,

I tried set UTF-8 like you, but didnt works with 1.9.2. I got the same
error.

I tried with 1.9.2-head and 1.9.2-preview1






error too
If I try with1.9.2I get the error:
gerar.rb:35: invalid multibyte char (US-ASCII)
gerar.rb:35: invalid multibyte char (US-ASCII)
gerar.rb:35: syntax error, unexpected $end, expecting ']'
How to fix this?
 
R

Ronald R.

Hi,

I tried set UTF-8 like you, but didnt works with 1.9.2. I got the same
error.

I tried with 1.9.2-head and 1.9.2-preview1
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,704
Messages
2,569,334
Members
44,617
Latest member
ConcettaTa

Latest Threads

Top