Thanks for the suggestions Tom.

As I'm developing a general-purpose driver I can't do anything in
PostgreSQL config, but it's a good workaround suggestion for users who
encounter this error.

Sending lc_messages in the startup packet could work, but if I understand
correctly that setting combines both encoding and language. I guess I can
look at the user's locale preference on the client machine, try to
translate that into a PostgreSQL language/encoding and send that in
lc_messages - that seems like it might work.

Shay

On Fri, Jul 31, 2015 at 3:46 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Shay Rojansky <r...@roji.org> writes:
> > Developing Npgsql I've encountered the problem described in
> >
> http://www.postgresql.org/message-id/20081223212414.gd3...@merkur.hilbert.loc
> :
> > a German installation of PostgreSQL seems to respond to an incorrect
> > password with a non-UTF8 encoding of the error messages, even if the
> > startup message contains client_encoding=UTF8.
>
> I wouldn't hold your breath waiting for that to change.
>
> A possible workaround is to run the postmaster with lc_messages=C and
> then switch to your desired message language per-session.  It would
> certainly work to send lc_messages along with client_encoding in the
> startup packet; or possibly you could set those settings as per-database
> or per-role settings to avoid needing to teach the application code
> about it.  This would mean that bad-password and similar errors would
> come out in English, but at least they'd be validly encoded ...
>
>                         regards, tom lane
>

Reply via email to