各位老兄,大家好.    小弟近来刚接触postgresql,在导入数据的时候被中文问题困住,特来请教了.    我事先有了SQL格式的文件,文件里带中文信息,还有的是中文字段名的.但是如果我用PGADMIN它的用户界面程序来操作导入就没一点问题了,中文数据和中文字段名的数据导入、显示都正常了。
    但我的SQL文件太大,有几百M的大小,数据内容多。这个时候用PGADMIN打开这个文件就报错了,这个时候我用命令行导,就报中文的错了,一有中文内容就报错。    建库的时候,数据库我试过UTF8、EUC_CN、SQL_ASCII等,都提示中文出错,报错内容为:
psql:G:/postgis/counb.sql:9: ERROR:  invalid byte sequence for encoding "UTF8":
0xc7c5    我用的命令是:psql -d dbname -f aa.sql请问,该如何才能用命令行导入中文数据了,谢谢

解决方案 »

  1.   

    试试这样做吧,把客户端输入临时设成gbk
    postgres=# set client_encoding to 'gbk';
    如果你想永远修改的话就要修改配置文件postgresql.conf 里的 client_encoding 设置
      

  2.   

    PGSQL没有弄过。帮你顶一下。
      

  3.   

    多谢 hy2003fly 兄1)
    我现在是在没进到psql 的命令行开始执行上面的导入命令的,命令行为:
    G:\Program Files\PostgreSQL\8.2\bin>psql   -d   dbname   -f   aa.sql 如果先设置客户端的编码postgres=#   set   client_encoding   to   'gbk';
    这样是要先进入到psql后,命令行为 postgres=#  
    在psql命令行后(postgres=#),请问这个时候的导入命令该如何写?直接写 
    postgres=#  -d   dbname   -f   aa.sql
    这样的写法出错啊.2)
    如果你想永远修改的话就要修改配置文件postgresql.conf   里的   client_encoding   设置
    在配置文件里改了这个设置的话,我的pgAdmin 启动的时候就报错了,报错为:
    Error connecting to the server:FATAL:conversion between GBK and ISO_8859_8 is not supported
      

  4.   

    现在这个问题我解决了,在执行命令之前行设置环境变量设置为GBK
    set pgclientencoding = gbk
    G:\Program   Files\PostgreSQL\8.2\bin> psql       -d       dbname       -f       aa.sql   
    这样就不出错了.终于可以把数据导进去了.
    只是这样设置每次都要设,那个改配置文件一次性搞定的还是出那个错不知该如何解决