Hi, I was working on setting up a PG16.devel(375407f4) test database with UTF8 but C locale, and found the following strange behaviour:
plain initdb: [...] Using default ICU locale "en_US". Using language tag "en-US" for ICU locale "en_US". The database cluster will be initialized with this locale configuration: provider: icu ICU locale: en-US LC_*: en_US.UTF-8 The default database encoding has accordingly been set to "UTF8". The default text search configuration will be set to "english". initdb --no-locale: (documented as "equivalent to --locale=C") [...] The database cluster will be initialized with locale "C". The default database encoding has accordingly been set to "SQL_ASCII". The default text search configuration will be set to "english". initdb --locale=C [...] Using default ICU locale "en_US". Using language tag "en-US" for ICU locale "en_US". The database cluster will be initialized with this locale configuration: provider: icu ICU locale: en-US LC_*: C The default database encoding has accordingly been set to "UTF8". The default text search configuration will be set to "english". Notably; if initdb chooses the C locale from --no-locale, it uses SQL_ASCII through libc, but when the C locale is specified through --locale=C, it somehow defaults to the ICU locale en-US and uses UTF8 as encoding. In my view that's very unexpected behaviour. Kind regards, Matthias van de Meent Neon (neon.tech)