Короче говоря, вы не можете сделать это только с помощью phpPgAdmin или SQL, не рискуя существующим повреждением данных .
Вы должны экспортировать все данные, создать базу данных с правильной кодировкой и восстановить экспортированные данные.
Вот как следует поступить:
создать дамп базы данных :
pg_dump your_database > your_database.sql
это сохранит вашу базу данных в формате sql, в кодировке, которая у вас есть на данный момент.
удалить базу данных (или переименовать ее):
DROP DATABASE your_database
если у вас достаточно памяти для этого, я рекомендую оставить старую базу данных, пока вы не убедитесь, что с новой все в порядке, переименовать it:
ALTER DATABASE your_database RENAME TO your_database_backup;
создать базу данных с новой кодировкой :
CREATE DATABASE your_database WITH ENCODING 'UNICODE' TEMPLATE=template0;
импорт данных из дампа, созданного до :
PGCLIENTENCODING=YOUR_OLD_ENCODING psql -f your_database.sql your_database
вам нужно установить кодировку psql-клиента на ту, которая была у вас в старой базе данных.
Изменение кодировки на лету невозможно, так как для этого потребуется переписать большую часть внутренних данных базы данных, что почти равнозначно воссозданию БД, как я описал.
Можно просто изменить внутреннюю информацию postgres о базе данных, и любые новые данные после этого изменения будут сохранены правильно, однако ваши существующие данные могут быть повреждены .