PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Rails 3, Heroku:Ketuk Kesalahan Server:PGError:ERROR:urutan byte tidak valid untuk pengkodean UTF8:0xba

Tanda angka , º , adalah 0xBA di ISO-8869-1 bukan UTF-8. Jadi file CSV Anda dikodekan dengan Latin-1 tetapi Anda mencoba menyimpannya di database Anda sebagai UTF-8 tanpa memperbaiki pengkodean.

Anda dapat mencoba memberi tahu perpustakaan CSV Anda bahwa itu berurusan dengan teks yang disandikan Latin-1 dan mungkin itu akan menangani konversi ke UTF-8. Jika tidak berhasil, Anda dapat melakukannya sendiri dengan Ikon :

ruby-1.9.2 > Iconv.iconv('UTF-8', 'ISO-8859-1', "\xba")
 => ["º"]
ruby-1.9.2 > Iconv.iconv('UTF-8', 'ISO-8859-1', "\xb0")
 => ["°"]

Anda tidak mengalami masalah dengan SQLite karena SQLite cenderung sangat pemaaf dan memiliki sistem tipe yang sangat longgar. PostgreSQL, OTOH, cenderung agak ketat dan mengeluh dengan benar jika Anda mencoba memberinya data yang tidak valid. Saya sarankan Anda berhenti mengembangkan di atas SQLite jika Anda akan menerapkan Heroku dan PostgreSQL, ada perbedaan lain yang akan menyebabkan masalah (misalnya perilaku GROUP BY dan LIKE).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Indeks GIN pada kolom smallint[] tidak digunakan atau operator kesalahan tidak unik

  2. Data Spasial di PostgreSQL

  3. Autocommit di Flask-SQLAlchemy

  4. Cara memberikan semua hak istimewa pada tampilan kepada pengguna yang sewenang-wenang

  5. setParameter() tidak menyetel tanda kutip yang tepat