On Fri, 5 Aug 2016 11:23:37 -0400 Peter Eisentraut <peter.eisentr...@2ndquadrant.com> wrote:
> On 8/4/16 9:42 AM, Tom Lane wrote: > > I'm inclined to think that we should reset the message locale > > to C as soon as we've forked away from the postmaster, and leave it > > that way until we've absorbed settings from the startup packet. > > Sending messages of this sort in English isn't great, but it's > > better than sending completely-unreadable ones. Or is that just my > > English-centricity showing? > > Well, most of the time this all works, only if there are different > client and server settings you might have problems. We wouldn't want > to partially disable the NLS feature for the normal case. > There are cases, where client cannot tell server which encoding it wants to use, and server cannot tell which encoding it uses, but it can send error messages. For example, CancelRequest. The only way to ensure that message is readable in this case is to fall back to some encoding, definitely known by both client and server. And for now it is US-ASCII. It is, as far as I understand, what Tom is proposing: Fall back to the untranslated message at the beginning of session, and return to NLS only when encoding is successfully negotiated between client and server. May be, there can be other solution - prepare client to be able to accept UTF-8 messages from server regardless of encoding, i.e. if message starts with BOM marker (0xFEFF unicode char, EF BB BF byte sequence in utf-8), interpret it as UTF-8. It would require client to support some kind of encoding conversion, and in some 8-bit environments pose problems with displaying these messages. -- -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers