знак за число
, º
, е 0xBA в ISO-8869-1
не UTF-8. Така че вашият CSV файл е кодиран с Latin-1, но вие се опитвате да го съхраните във вашата база данни като UTF-8, без да коригирате кодирането.
Можете да опитате да кажете на вашата CSV библиотека, че работи с кодиран текст с Latin-1 и може би тя ще се погрижи за конвертирането в UTF-8. Ако това не работи, тогава можете да го направите сами с Конв. :
ruby-1.9.2 > Iconv.iconv('UTF-8', 'ISO-8859-1', "\xba")
=> ["º"]
ruby-1.9.2 > Iconv.iconv('UTF-8', 'ISO-8859-1', "\xb0")
=> ["°"]
Нямате проблеми с SQLite, защото SQLite има тенденция да прощава много и има много свободна система от типове. PostgreSQL, OTOH, има тенденция да бъде доста строг и правилно се оплаква, ако се опитате да му подадете невалидни данни. Бих препоръчал да спрете да разработвате върху SQLite, ако възнамерявате да внедрите Heroku и PostgreSQL, има други разлики, които ще причинят проблеми (например поведението на GROUP BY и LIKE).