PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Rails 3, Heroku:Taps Server Error:PGError:ERROR:chuỗi byte không hợp lệ để mã hóa UTF8:0xba

ký hiệu số , º , là 0xBA trong ISO-8869-1 không phải UTF-8. Vì vậy, tệp CSV của bạn được mã hóa bằng Latin-1 nhưng bạn đang cố gắng lưu trữ nó trong cơ sở dữ liệu của mình dưới dạng UTF-8 mà không sửa mã hóa.

Bạn có thể thử nói với thư viện CSV của mình rằng nó đang xử lý văn bản được mã hóa Latin-1 và có thể nó sẽ xử lý chuyển đổi sang UTF-8. Nếu cách đó không hiệu quả thì bạn có thể tự thực hiện với 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")
 => ["°"]

Bạn không gặp khó khăn với SQLite bởi vì SQLite có xu hướng rất dễ tha thứ và nó có một hệ thống kiểu rất lỏng lẻo. PostgreSQL, OTOH, có xu hướng khá nghiêm ngặt và phàn nàn đúng cách nếu bạn cố cung cấp cho nó dữ liệu không hợp lệ. Tôi khuyên bạn nên ngừng phát triển trên SQLite nếu bạn sắp triển khai tới Heroku và PostgreSQL, có những khác biệt khác sẽ gây ra vấn đề (ví dụ:hành vi của GROUP BY và 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. Cách tạo các câu lệnh chuẩn bị cho postgres động trong PHP

  2. Đặt giá trị trả về mặc định cho hàm Postgres

  3. Kích hoạt postgresql khi đăng nhập người dùng

  4. Nhật ký PostgreSQL trên macOS ở đâu?

  5. Kết nối bộ chứa postgreSQL + postGIS docker từ mạng cục bộ của tôi