Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

codepage



Looking yet further at

   ERROR:  conversion between latin9 and LATIN1 is not supported

mulitbyte.c looks as though it needs the included patch, because
support for WIN1252 encoding was added to the server on 2005/03/14
so was released with 8.1 (2005/11/08), and because latin9 is a
worse match for win1252 than latin1.

e.g., your windows client with win1252 sends a 1/2 character, 0xbd to
a 8.1 server. The odbc code says 8.1>=7.1, I'll send 0xbd as latin9.
But, 0xbd in latin9 is oe. 0xbd in latin1 is 1/2 and what you would
expect.

Some might say "ah but the euro symbol which exists in win1252 exists
in latin9 but not in latin1". OK, but I would you represent it?
In win1252, euro is 0x80. Send 0x80 as latin1 or latin9, get nothing -
it's in the 0x80-0x9f control character range.

Thoughts?

Cheers,

Patrick
Index: multibyte.c
===================================================================
RCS file: /cvsroot/psqlodbc/psqlodbc/multibyte.c,v
retrieving revision 1.44
diff -u -r1.44 multibyte.c
--- multibyte.c	27 Apr 2006 14:49:04 -0000	1.44
+++ multibyte.c	4 May 2006 15:50:56 -0000
@@ -424,8 +424,8 @@
 		case 1252:
 			if (oldenc)
 				;
-			else if (PG_VERSION_GE(conn, 7.2))
-				wenc = "latin9";
+			else if (PG_VERSION_GE(conn, 8.1))
+				wenc = "WIN1252";
 			else
 				wenc = "latin1";
 			break;


Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group