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

SQLAlchemy và Postgres UnicodeDecodeError

Có vẻ như cách mã hóa khác nhau giữa máy chủ và máy khách. Bạn có thể xác minh điều này bằng cách sử dụng các lệnh sau:

SHOW client_encoding; --Equivalent to: SELECT current_setting('client_encoding');
SHOW server_encoding; --Equivalent to: SELECT current_setting('server_encoding');

PostgreSQL tự động chuyển đổi sang mã hóa máy khách. Có lẽ cả hai đều khác nhau trong môi trường của bạn. Bạn có thể định cấu hình client_encoding bằng nhiều cách:

  • Sử dụng SET lệnh khi mở kết nối trong ứng dụng của bạn:SET client_encoding = 'UTF-8';
  • Sử dụng set_config chức năng khi mở kết nối trong ứng dụng của bạn:SELECT set_config('client_encoding', 'UTF-8', true);
  • Định cấu hình PGCLIENTENCODING môi trường var trong bạn OS:export PGCLIENTENCODING=UTF8
  • Chỉnh sửa client_encoding trong tệp cấu hình postgres
  • Sử dụng ALTER SYSTEM (bạn phải làm mới cấu hình sau đó với SELECT pg_reload_conf(); ):ALTER SYSTEM SET client_encoding = 'UTF-8';

Cập nhật: Rất tiếc, không thể bật chuyển đổi tự động từ SQL_ASCII.

Trích dẫn từ tài liệu Postgres .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TransactionManagementError?

  2. nhận id của nhiều hàng được chèn vào psycopg2

  3. Postgres 9.1 so với Mysql 5.6 InnoDB?

  4. Nhóm nắm bắt biểu thức chính quy PostgreSQL được chọn

  5. Tính số sự kiện đồng thời trong SQL