Hi,
This topic seems to be related to the bug report
[ODBC] Localized error messages, wrong charset
.
Bruce Momjian wrote:
> Added to TODO:
>
> Improve encoding of connection startup messages sent to the client
>
> Currently some authentication error messages are sent in the server
> encoding
It it true ?
IIRC the backend knows nothing about the server encoding in
authentication phase.
Psqlodbc Unicode driver sends connection startup message which
contains the client_encoding(=UTF8) guc parameter. Attached is
a trial patch so that the psqlodbc Unicode driver can get
properly localized password error messages.
regards,
Hiroshi Inoue
Index: postmaster/postmaster.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/postmaster/postmaster.c,v
retrieving revision 1.570
diff -c -c -r1.570 postmaster.c
*** postmaster/postmaster.c 4 Jan 2009 22:19:59 -0000 1.570
--- postmaster/postmaster.c 30 Jan 2009 14:05:35 -0000
***************
*** 1552,1557 ****
--- 1552,1560 ----
pstrdup(nameptr));
port->guc_options = lappend(port->guc_options,
pstrdup(valptr));
+ if (stricmp(nameptr, "client_encoding") == 0 &&
+ stricmp(valptr, "UTF8") == 0)
+ bind_textdomain_codeset(PG_TEXTDOMAIN("postgres"), "UTF-8");
}
offset = valoffset + strlen(valptr) + 1;
}