6

我有以下数据库

sudo -u postgres psql -c "\list"

                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges   
-----------+----------+----------+---------+-------+-----------------------
 postgres  | postgres | LATIN1   | en_US   | en_US | 
 template0 | postgres | LATIN1   | en_US   | en_US | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | LATIN1   | en_US   | en_US | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
(3 rows)

如何在数据库中将编码从 LATIN1 更改为 UTF8template1template0

4

2 回答 2

4

由于您在这里似乎没有任何实际数据,因此只需关闭并删除集群(服务器和数据库集)并重新创建它。您使用的是哪个操作系统?创建新集群的标准 PostgreSQL 命令是 initdb,但在 Debian/Ubuntu 等平台上,您通常会使用pg_createcluster

另请参阅如何更改 postgres 数据库的字符编码?

尽管您可以尝试调整编码,但不建议这样做。即使我在那个链接的问题中提出了建议,如果您在这里有带有 latin1 字符的数据,您需要将它们重新编码为 utf-8。

于 2012-11-27T14:13:37.917 回答
0

只需使用:

更新 pg_database 集编码 = pg_char_to_encoding('LATIN1') where datname = 'seguros'

于 2017-09-28T13:48:06.550 回答