Проблема не в FasterCSV, так как в моем тестировании у FasterCSV не было проблем с чтением этих данных. Например:
>> FasterCSV.parse("a,Städtische Galerie im Lenbachhaus,b,ä", :headers => [:a,:b,:c,:d]) do |r|
| r = r.to_hash
| p r
| puts r[:d]
| end
{:c=>"b", :a=>"a", :d=>"\303\244", :b=>"Städtische Galerie im Lenbachhaus"}
ä
Обратите внимание, что Ruby 1.8 не обрабатывает символы Юникода должным образом, но в основном это влияет на такие вещи, как String#length
. Например, Ruby вернет длину этой строки как 34 вместо 33. Однако это не повлияет, пока вы не сделаете что-то со строкой, например, запустите проверку на ней.
>> "Städtische Galerie im Lenbachhaus".length
=> 34
>> "Stadtische Galerie im Lenbachhaus".length
=> 33
Так что я думаю, это что-то вроде ImportObject
или как настроено ваше соединение с базой данных.
Версия Ruby, используемая в этих тестах:
>> RUBY_DESCRIPTION
=> "ruby 1.8.7 (2010-04-19 patchlevel 253) [i686-darwin10.4.0], MBARI 0x6770, Ruby Enterprise Edition 2010.02"