postGreSql 导入数据中有中文内容是出错

cql0007 2007-12-25 03:15:56
各位老兄,大家好.

小弟近来刚接触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

请问,该如何才能用命令行导入中文数据了,谢谢
...全文
929 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cql0007 2007-12-27
  • 打赏
  • 举报
回复
现在这个问题我解决了,在执行命令之前行设置环境变量设置为GBK
set pgclientencoding = gbk
G:\Program Files\PostgreSQL\8.2\bin> psql -d dbname -f aa.sql
这样就不出错了.终于可以把数据导进去了.
只是这样设置每次都要设,那个改配置文件一次性搞定的还是出那个错不知该如何解决
cql0007 2007-12-26
  • 打赏
  • 举报
回复
多谢 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
toddzst 2007-12-26
  • 打赏
  • 举报
回复
帮顶,弄过日文的,UTF8就可以,没弄过中文
OracleRoob 2007-12-25
  • 打赏
  • 举报
回复
帮顶
OracleRoob 2007-12-25
  • 打赏
  • 举报
回复
没搞过这个,关注。
懒得去死 2007-12-25
  • 打赏
  • 举报
回复
PGSQL没有弄过。帮你顶一下。
hy2003fly 2007-12-25
  • 打赏
  • 举报
回复
试试这样做吧,把客户端输入临时设成gbk
postgres=# set client_encoding to 'gbk';
如果你想永远修改的话就要修改配置文件postgresql.conf 里的 client_encoding 设置

56,800

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧