On Fri, 2025-12-19 at 20:10 -0800, Igor Korot wrote:
> > > > What is “clientencoding in this case?
> > > 
> > > - if PGCLIENTENCODING is set in the environment of the client executable, 
> > > that
> > 
> > No it is not.
> > 
> > > - otherwise, if "client_encoding" is set on the server, that
> 
> I just checked the postgres.conf.
> 
> This file does not have any client_encoding.
> 
> > > - otherwise, SQL_ASCII
> 
> Which means that this is an encoding that will be used.

You can verify that with the SQL statement "SHOW client_encoding"
in your sample program.

> But then I don’t understand anything.
> 
> The code I posted above worked fine on SELECT, but INSERT failed.
> 
> If the SQL_ASCII is the encoding used both operations should fail. Or both 
> succeeds.
> 
> Could someone explain what happened?

SQL_ASCII as client encoding means that no conversion will take place.

Still, the database encoding (I suspect UTF8) will govern what can be stored
in the database.  Anything that is not valid UTF-8 will be rejected.

A SELECT will never cause an error - the client will just receive data
in UTF-8.

Yours,
Laurenz Albe


Reply via email to