title: CSV importing in Rails - invalid byte sequence in UTF-8 with non-english characters
body: <p>I'm using the <a href="http://csv-mapper.rubyforge.org/" rel="nofollow noreferrer">CSVMapper Gem</a> to import some records in a CSV file to a Rails 3 model. (I used this gem because it is what I've found the easiest way to do this)</p>
  <p>Anyway, the code I'm using to import the records is the following:</p>
  <pre><code>r = import('doc/socios_full.csv') do
      map_to Associate
      after_row lambda{|row, associate| associate.save }
      start_at_row 1
      [group,member,family_relationship_code,family_relationship_description,last_name,names,...]
  #The previous line is actually longer, with more atts, but it's been cut to explain the example
  end
  </code></pre>
  <hr />
  <p>And it works very well, except when the parser encounters some non-english characters, like <code>ó, é, ñ, í, °...</code>. That's when I get the following error:</p>
  <pre><code>ArgumentError: invalid byte sequence in UTF-8
      from /home/bcb/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/csv.rb:1831:in `sub!'
      from /home/bcb/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/csv.rb:1831:in `block in shift'
      from /home/bcb/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/csv.rb:1825:in `loop'
      from /home/bcb/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/csv.rb:1825:in `shift'
      from /home/bcb/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/csv.rb:1767:in `each'
      from /home/bcb/.rvm/gems/ruby-1.9.2-p136/gems/csv-mapper-0.5.1/lib/csv-mapper.rb:106:in `each_with_index'
      from /home/bcb/.rvm/gems/ruby-1.9.2-p136/gems/csv-mapper-0.5.1/lib/csv-mapper.rb:106:in `import'
      from (irb):63
      from /home/bcb/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.9/lib/rails/commands/console.rb:44:in `start'
      from /home/bcb/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.9/lib/rails/commands/console.rb:8:in `start'
      from /home/bcb/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.9/lib/rails/commands.rb:23:in `&lt;top (required)&gt;'
      from script/rails:6:in `require'
      from script/rails:6:in `&lt;main&gt;'
  </code></pre>
  <p>I'm really certain of this because if I replace all of these characters, the problem goes away until the parser finds another non-english character. The thing is that I have a 50k records file, so searching for each character I can think of and trying to import all of these records every time is very time consuming.</p>
  <p>Is there a way to ignore these errors and allow the parser to go on? Or is there an easier way to import this CSV file?</p>