各位老兄,大家好. 小弟近来刚接触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请问,该如何才能用命令行导入中文数据了,谢谢
但我的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请问,该如何才能用命令行导入中文数据了,谢谢
postgres=# set client_encoding to 'gbk';
如果你想永远修改的话就要修改配置文件postgresql.conf 里的 client_encoding 设置
我现在是在没进到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
set pgclientencoding = gbk
G:\Program Files\PostgreSQL\8.2\bin> psql -d dbname -f aa.sql
这样就不出错了.终于可以把数据导进去了.
只是这样设置每次都要设,那个改配置文件一次性搞定的还是出那个错不知该如何解决