numero sign
、º
、ISO-8869-1
では0xBAです。 UTF-8ではありません。したがって、CSVファイルはLatin-1でエンコードされていますが、エンコードを修正せずにUTF-8としてデータベースに保存しようとしています。
CSVライブラリにLatin-1でエンコードされたテキストを処理していることを伝えてみると、UTF-8への変換が処理される可能性があります。それでも問題が解決しない場合は、 Iconv :
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はかなり厳格になる傾向があり、無効なデータをフィードしようとすると適切に文句を言います。 HerokuとPostgreSQLにデプロイする場合は、SQLite上での開発を停止することをお勧めします。問題を引き起こす他の違いがあります(たとえば、GROUP BYとLIKEの動作)。