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からUTF8に変更するにはどうすればよいですtemplate1template0

4

2 に答える 2

4

ここには実際のデータがないように見えるため、クラスター (サーバーとデータベースのセット) をシャットダウンして削除し、再作成してください。どのオペレーティング システムを使用していますか? 新しいクラスターを作成する標準の PostgreSQL コマンドは initdb ですが、Debian/Ubuntu などでは通常使用しますpg_createcluster

postgres データベースの文字エンコーディングをどのように変更しますか?も参照してください。

エンコーディングを微調整することはできますが、お勧めしません。そのリンクされた質問で提案しましたが、ここに latin1 文字を含むデータがある場合は、それらを utf-8 に再コード化する必要があります。

于 2012-11-27T14:13:37.917 に答える
0

使用するだけです:

update pg_database set encoding = pg_char_to_encoding('LATIN1') where datname = 'seguros'

于 2017-09-28T13:48:06.550 に答える