mbch67@yahoo.com wrote:
> Hi,
>
> The following statement worked fine with 7.4 but fails under 8.0.0beta4:
>
> SET CLIENT_ENCODING TO 'LATIN1';
>
> Error message:
>
> 08006
> The servers client_encoding parameter was changed to {0}.
> The JDBC driver requires client_encoding to be UNICODE for
> correct operation.
>
> Is this a bug or a new restriction of the JDBC driver/server backend?
It's an old restriction of the JDBC driver. It's just that only the new
driver detects and complains about attempts to change the encoding.
The underlying problem is that currently the driver sets client_encoding
= UNICODE (which matches the internal Java string representation well)
and expects it to stay that way for the duration of the connection. If
you manually change client_encoding, then the driver will happily try to
decode those LATIN1-encoded strings as UTF8-encoded strings, and get
very confused..
Why do you need to change client_encoding?
-O