I have the following databases
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)
How can I change encoding from LATIN1 to UTF8 in the database template1 or template0?
Since you don’t appear to have any actual data here, just shutdown and delete the cluster (server and set of databases) and re-create it. Which operating system are you using? The standard PostgreSQL command to create a new cluster is initdb, but on Debian/Ubuntu et al you’d typically use
pg_createclusterSee also How do you change the character encoding of a postgres database?
Although you can try to tweak the encodings, it’s not recommended. Even though I suggested it in that linked question, if you had data with latin1 characters here, you’d need to recode them to utf-8.