From 6742d8b44a163b3560bf22f0f0436eb3849f7161 Mon Sep 17 00:00:00 2001 From: travelliu Date: Fri, 28 Jul 2023 14:58:46 +0800 Subject: [PATCH] feat: characterEncoding add gb18030 charset --- .../java/org/postgresql/core/Encoding.java | 1 + .../core/v3/ConnectionFactoryImpl.java | 1 + .../java/org/postgresql/test/TestUtil.java | 26 ++++++++++++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/pgjdbc/src/main/java/org/postgresql/core/Encoding.java b/pgjdbc/src/main/java/org/postgresql/core/Encoding.java index a335045..f065557 100644 --- a/pgjdbc/src/main/java/org/postgresql/core/Encoding.java +++ b/pgjdbc/src/main/java/org/postgresql/core/Encoding.java @@ -59,6 +59,7 @@ public class Encoding { encodings.put("SJIS", new String[]{"MS932", "SJIS"}); encodings.put("BIG5", new String[]{"Big5", "MS950", "Cp950"}); encodings.put("GBK", new String[]{"GBK", "MS936"}); + encodings.put("GB18030", new String[]{"GB18030"}); encodings.put("UHC", new String[]{"MS949", "Cp949", "Cp949C"}); encodings.put("TCVN", new String[]{"Cp1258"}); encodings.put("WIN1256", new String[]{"Cp1256"}); diff --git a/pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java b/pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java index fdf0fac..1aabd35 100644 --- a/pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java +++ b/pgjdbc/src/main/java/org/postgresql/core/v3/ConnectionFactoryImpl.java @@ -84,6 +84,7 @@ public class ConnectionFactoryImpl extends ConnectionFactory { CLIENT_ENCODING_WHITELIST.put("UTF8", "UTF8"); CLIENT_ENCODING_WHITELIST.put("UTF-8", "UTF-8"); CLIENT_ENCODING_WHITELIST.put("GBK", "GBK"); + CLIENT_ENCODING_WHITELIST.put("GB18030", "GB18030"); CLIENT_ENCODING_WHITELIST.put("LATIN1", "LATIN1"); } // public static void setStaticClientEncoding(String client) { diff --git a/pgjdbc/src/test/java/org/postgresql/test/TestUtil.java b/pgjdbc/src/test/java/org/postgresql/test/TestUtil.java index b459d77..2d7efe2 100644 --- a/pgjdbc/src/test/java/org/postgresql/test/TestUtil.java +++ b/pgjdbc/src/test/java/org/postgresql/test/TestUtil.java @@ -89,6 +89,16 @@ public class TestUtil { ssl = "&ssl=" + getSSL(); } + String characterEncoding = ""; + if (getCharacterEncoding() != null && !getCharacterEncoding().equals("")) { + characterEncoding = "&characterEncoding=" + getCharacterEncoding(); + } + + String allowEncodingChanges = ""; + if (getAllowEncodingChanges() != null && !getAllowEncodingChanges().equals("")) { + allowEncodingChanges = "&allowEncodingChanges=" + getAllowEncodingChanges(); + } + return "jdbc:postgresql://" + hostport + "/" + database @@ -99,7 +109,7 @@ public class TestUtil { + binaryTransfer + receiveBufferSize + sendBufferSize - + ssl; + + ssl + allowEncodingChanges + characterEncoding; } /* @@ -208,6 +218,20 @@ public class TestUtil { return System.getProperty("loggerLevel"); } + /** + * Returns the allowEncodingChanges + */ + public static String getAllowEncodingChanges() { + return System.getProperty("allowEncodingChanges"); + } + + /** + * Returns the characterEncoding + */ + public static String getCharacterEncoding() { + return System.getProperty("characterEncoding"); + } + /* * Returns the log file to use */