Изглежда, че кодирането е различно от сървър до клиент. Можете да проверите това, като издадете следните команди:
SHOW client_encoding; --Equivalent to: SELECT current_setting('client_encoding');
SHOW server_encoding; --Equivalent to: SELECT current_setting('server_encoding');
PostgreSQL автоматично преобразува в клиентско кодиране. Вероятно и двете са различни във вашата среда. Можете да конфигурирате client_encoding по много начини:
- Използване на
SETкоманда при отворена връзка във вашето приложение:SET client_encoding = 'UTF-8'; - Използване на
set_configфункция при отворена връзка във вашето приложение:SELECT set_config('client_encoding', 'UTF-8', true); - Конфигурирайте
PGCLIENTENCODINGпроменлива на средата във вашата ОС:export PGCLIENTENCODING=UTF8 - Редактирайте
client_encodingв конфигурационния файл на postgres - Използвайте
ALTER SYSTEM(трябва да опресните конфигурацията след това сSELECT pg_reload_conf();):ALTER SYSTEM SET client_encoding = 'UTF-8';
Актуализация: За съжаление не е възможно да се активира автоматично преобразуване от SQL_ASCII.
Цитат от документация на Postgres .