initdb: derive encoding from locale for ICU; similar to libc.

Jeff Davis <jdavis@postgresql.org>

Commit: c45dc7ffbba2cb0bf180a0b9edadc22769143e7a
Author: Jeff Davis <jdavis@postgresql.org>
Date: 2023-03-10T18:51:24Z
Releases: 16.0
initdb: derive encoding from locale for ICU; similar to libc.

Previously, the default encoding was derived from the locale when
using libc; while the default was always UTF-8 when using ICU. That
would throw an error when the locale was not compatible with UTF-8.

This commit causes initdb to derive the default encoding from the
locale for both providers. If --no-locale is specified (or if the
locale is C or POSIX), the default encoding will be UTF-8 for ICU
(because ICU does not support SQL_ASCII) and SQL_ASCII for libc.

Per buildfarm failure on system "hoverfly" related to commit
27b62377b4.

Discussion: https://postgr.es/m/d191d5841347301a8f1238f609471ddd957fc47e.camel%40j-davis.com

Files

Documentation touched

Discussion