Encoding for error messages during connect

Поиск
Список
Период
Сортировка
От Thomas Kellerer
Тема Encoding for error messages during connect
Дата
Msg-id j935mi$ub7$1@dough.gmane.org
обсуждение исходный текст
Ответы Re: Encoding for error messages during connect  (Thomas Kellerer <spam_eater@gmx.net>)
Список pgsql-jdbc
Hi,

when the server is set to e.g. lc_messages = 'German_Germany.1252' then error messages during connect are not properly
decodedby the driver (or encoded by the server?) 

At least when the passwort is incorrect the german error message

    Passwort-Authentifizierung für Benutzer »thomas« fehlgeschlagen

is incorrectly received by the driver as

    Passwort-Authentifizierung f?r Benutzer ?thomas? fehlgeschlagen

After debugging the driver I found out that the driver creates the stream for the startup communication using US_ASCII
encodingwhich will yield incorrect characters beyond ASCII 127. 

I debugged the data that is received from the server and that proofed that the message is received as a single byte
encoding.Which seems correct as 'German_Germany.1252' is indeed a single byte encoding. 

I changed the stream that the driver uses during connect to use a different encoding, by changing
org.postgresql.core.v3.ConnectionFactoryImpland adding the line 

newStream.setEncoding(Encoding.getDatabaseEncoding("ISO-8859-1"));

after Line 77 (where newStream = new PGStream(host, port) is done)

And in that case the error message is decoded properly by the driver.

Now I don't think it would be possible for the driver to find out which encoding to use for that stream before actually
havinga connection. So it would need to evaluate some kind of client side information, e.g. the lc_messages environment
variableon the client or through a connection property that would then be used to initialize the stream correctly. 

Personally I'd prefer a connection property (something like "messageEncoding") to control this as this can be part of
theJDBC URL which is usually configurable in a Java environment. 

What do you think?

Regards
Thomas






В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Dave Cramer
Дата:
Сообщение: Re: Fwd: [BUGS] BUG #6285: PreparedStatement#executeUpdate gets syntax error on apostrophe
Следующее
От: "Johann 'Myrkraverk' Oskarsson"
Дата:
Сообщение: Re: Fwd: Re: [BUGS] BUG #6253: JDBC driver: getIndexInfo() returns quotes around quoted column names