Thread: Bug #898: client_encoding can't support GB18030 encoding in postgresql 7.3.1
Bug #898: client_encoding can't support GB18030 encoding in postgresql 7.3.1
From
pgsql-bugs@postgresql.org
Date:
zzhb (dragzhb@yahoo.com.cn) reports a bug with a severity of 3 The lower the number the more severe it is. Short Description client_encoding can't support GB18030 encoding in postgresql 7.3.1 Long Description When I insert records using files, psql -f install.sql if I set PGCLIENTENCODING=GB18030, psql insert simplifed chinese incorrectly,but if I set PGCLIENTENCODING=GBK or unset PGCLIENTENCODING,psqlinsert simplifed chinese correctly. But when I use \encoding GB18030 to insert records in interactive psql,it can insert simplifed chinese correctly. The following is my envirnoment. [postgres@hbzhang postgres]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- template0 | postgres | UNICODE template1 | postgres | UNICODE test | postgres | UNICODE (3 rows) [postgres@hbzhang postgres]$ [postgres@hbzhang postgres]$ locale LANG=zh_CN.GB18030 LC_CTYPE="zh_CN.GB18030" LC_NUMERIC="zh_CN.GB18030" LC_TIME="zh_CN.GB18030" LC_COLLATE="zh_CN.GB18030" LC_MONETARY="zh_CN.GB18030" LC_MESSAGES="zh_CN.GB18030" LC_PAPER="zh_CN.GB18030" LC_NAME="zh_CN.GB18030" LC_ADDRESS="zh_CN.GB18030" LC_TELEPHONE="zh_CN.GB18030" LC_MEASUREMENT="zh_CN.GB18030" LC_IDENTIFICATION="zh_CN.GB18030" LC_ALL= [postgres@hbzhang postgres]$ [root@hbzhang root]# uname -a Linux hbzhang 2.4.18-14 #1 Wed Sep 4 13:35:50 EDT 2002 i686 i686 i386 GNU/Linux [root@hbzhang root]# [root@hbzhang root]# pg_ctl --version pg_ctl (PostgreSQL) 7.3.1 [root@hbzhang root]# Sample Code No file was uploaded with this report
> zzhb (dragzhb@yahoo.com.cn) reports a bug with a severity of 3 > The lower the number the more severe it is. > > Short Description > client_encoding can't support GB18030 encoding in postgresql 7.3.1 > > Long Description > When I insert records using files, psql -f install.sql > > if I set PGCLIENTENCODING=GB18030, psql insert simplifed chinese incorrectly,but if I set PGCLIENTENCODING=GBK or unsetPGCLIENTENCODING,psql insert simplifed chinese correctly. > > But when I use \encoding GB18030 to insert records in interactive psql,it can insert simplifed chinese correctly. If you are setteing PGCLIENTENCODING before starting up postmaster, or you are setting client_encoding in postgresql.conf, then that is a known bug. Currently the fix is in current, but not in the 7.3 stable tree to avoid the backward compatibilty with prior releases. This is due to the fact that libpq calls pg_client_encoding() function which is only available in 7.3 or later if you apply the fix. If you need patches for 7.3.1, I could provie it for you, though they would lose the backward compatibilty with prior releases. > The following is my envirnoment. > > [postgres@hbzhang postgres]$ psql -l > List of databases > Name | Owner | Encoding > -----------+----------+---------- > template0 | postgres | UNICODE > template1 | postgres | UNICODE > test | postgres | UNICODE > (3 rows) > > [postgres@hbzhang postgres]$ > [postgres@hbzhang postgres]$ locale > LANG=zh_CN.GB18030 > LC_CTYPE="zh_CN.GB18030" > LC_NUMERIC="zh_CN.GB18030" > LC_TIME="zh_CN.GB18030" > LC_COLLATE="zh_CN.GB18030" > LC_MONETARY="zh_CN.GB18030" > LC_MESSAGES="zh_CN.GB18030" > LC_PAPER="zh_CN.GB18030" > LC_NAME="zh_CN.GB18030" > LC_ADDRESS="zh_CN.GB18030" > LC_TELEPHONE="zh_CN.GB18030" > LC_MEASUREMENT="zh_CN.GB18030" > LC_IDENTIFICATION="zh_CN.GB18030" > LC_ALL= > [postgres@hbzhang postgres]$ > > > > [root@hbzhang root]# uname -a > Linux hbzhang 2.4.18-14 #1 Wed Sep 4 13:35:50 EDT 2002 i686 i686 i386 GNU/Linux > [root@hbzhang root]# > > [root@hbzhang root]# pg_ctl --version > pg_ctl (PostgreSQL) 7.3.1 > [root@hbzhang root]# > > Sample Code > > > No file was uploaded with this report > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org > x1