9811a25b6c
Add character sets to the server PR: 27846 Submitted by: Palle Girgensohn <girgen@partitur.se>
51 lines
2 KiB
Text
51 lines
2 KiB
Text
===================================================================
|
|
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/Connection.java,v
|
|
retrieving revision 1.14
|
|
retrieving revision 1.16
|
|
diff -u -r1.14 -r1.16
|
|
--- src/interfaces/jdbc/org/postgresql/Connection.java 2001/01/31 08:26:01 1.14
|
|
+++ src/interfaces/jdbc/org/postgresql/Connection.java 2001/06/01 20:57:58 1.16
|
|
@@ -10,7 +10,7 @@
|
|
import org.postgresql.util.*;
|
|
|
|
/**
|
|
- * $Id: Connection.java,v 1.14 2001/01/31 08:26:01 peter Exp $
|
|
+ * $Id: Connection.java,v 1.16 2001/06/01 20:57:58 momjian Exp $
|
|
*
|
|
* This abstract class is used by org.postgresql.Driver to open either the JDBC1 or
|
|
* JDBC2 versions of the Connection class.
|
|
@@ -267,7 +267,8 @@
|
|
//
|
|
firstWarning = null;
|
|
|
|
- java.sql.ResultSet initrset = ExecSQL("set datestyle to 'ISO'; select getdatabaseencoding()");
|
|
+ java.sql.ResultSet initrset = ExecSQL("set datestyle to 'ISO'; " +
|
|
+ "select case when pg_encoding_to_char(1) = 'SQL_ASCII' then 'UNKNOWN' else getdatabaseencoding() end");
|
|
|
|
String dbEncoding = null;
|
|
//retrieve DB properties
|
|
@@ -307,9 +308,23 @@
|
|
} else if (dbEncoding.equals("EUC_TW")) {
|
|
dbEncoding = "EUC_TW";
|
|
} else if (dbEncoding.equals("KOI8")) {
|
|
- dbEncoding = "KOI8_R";
|
|
+ // try first if KOI8_U is present, it's a superset of KOI8_R
|
|
+ try {
|
|
+ dbEncoding = "KOI8_U";
|
|
+ "test".getBytes(dbEncoding);
|
|
+ }
|
|
+ catch(UnsupportedEncodingException uee) {
|
|
+ // well, KOI8_U is still not in standard JDK, falling back to KOI8_R :(
|
|
+ dbEncoding = "KOI8_R";
|
|
+ }
|
|
+
|
|
} else if (dbEncoding.equals("WIN")) {
|
|
dbEncoding = "Cp1252";
|
|
+ } else if (dbEncoding.equals("UNKNOWN")) {
|
|
+ //This isn't a multibyte database so we don't have an encoding to use
|
|
+ //We leave dbEncoding null which will cause the default encoding for the
|
|
+ //JVM to be used
|
|
+ dbEncoding = null;
|
|
} else {
|
|
dbEncoding = null;
|
|
}
|