sql >> データベース >  >> RDS >> PostgreSQL

Rails 3、Heroku:Taps Serverエラー:PGError:エラー:UTF8をエンコードするための無効なバイトシーケンス:0xba

    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の動作)。




    1. 単一の属性で一意のRails4クエリ

    2. PostgreSQLでクエリ結果をフィルタリングする方法

    3. MySQLでテーブル変数を作成する

    4. MySQLでシード値を手動で1000に設定する方法