免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10778 | 回复: 7
打印 上一主题 下一主题

PostgreSQL字符设置问题求救!急! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-03 20:29 |只看该作者 |倒序浏览
本帖最后由 angely96 于 2010-08-03 20:34 编辑

是这样的,我的PostgreSQL 8.2运行在AIX上,我导出了数据库的表结构,并用pgadmin备份了部分表的数据,

然后我在Win上安装了PostgreSQL 8.4,想进行测试。我导入了数据库表结构,并用pgadmin对部分表进行恢复,恢复时,报错如下:
  1. C:\Program Files\pgAdmin III\1.8\pg_restore.exe -h localhost -p 5432 -U postgres -d anadb -a -t t_stream_07_22 -v "C:\Users\Administrator\Desktop\数据库备份\t_stream_07_22.backup"
  2. pg_restore: connecting to database for restore
  3. pg_restore: restoring data for table "t_stream_07_22"
  4. pg_restore: [archiver (db)] Error while PROCESSING TOC:
  5. pg_restore: [archiver (db)] Error from TOC entry 11301; 0 50044 TABLE DATA t_stream_07_22 postgres
  6. pg_restore: [archiver (db)] COPY failed: ERROR:  invalid byte sequence for encoding "UTF8": 0x80
  7. HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
  8. CONTEXT:  COPY t_stream_07_22, line 2586
  9. WARNING: errors ignored on restore: 1

  10. 进程退出并返回 1。
复制代码
一直找不到问题所在,找了一下说是字符集问题,还是怎么都设置不好。

另外,我查看了我在Win系统中的PostgreSQL服务器字符,如下:
D:\Program files\PostgreSQL\8.4\bin>psql.exe -d anadb -Upostgres
psql (8.4.4)
输入 "help" 来获取帮助信息.

anadb=#
anadb=# show client_encoding;
client_encoding
-----------------
gbk
(1 行记录)


anadb=#


请求各位大侠的帮助。太感谢了!

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
2 [报告]
发表于 2010-08-03 21:02 |只看该作者
字符集在AIX和WINDOWS下是不一样的。

论坛徽章:
0
3 [报告]
发表于 2010-08-04 10:57 |只看该作者
因为两者的客户端编码不一样。
所以你在aix备份出来的是utf8码
在win倒入的是gbk码,所以有这错误。

解决方法是,导出时指定客户端编码为gbk, 或导入时指定客户端编码为utf8
不知pgadmin有没有这选项。pg_dump是有这选项。

论坛徽章:
0
4 [报告]
发表于 2010-08-04 11:00 |只看该作者
回复 3# trainee


    非常感谢楼上的两位,我试试!

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
5 [报告]
发表于 2010-08-04 11:16 |只看该作者
回复 3# trainee


    pg_dump怎么指定导出字符集编码啊。

论坛徽章:
0
6 [报告]
发表于 2010-08-04 13:58 |只看该作者
回复  trainee


    pg_dump怎么指定导出字符集编码啊。
renxiao2003 发表于 2010-08-04 11:16



-E, --encoding=ENCODING     dump the data in encoding ENCODING

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
7 [报告]
发表于 2010-08-04 14:06 |只看该作者
回复 6# hmily36


    嗯。确实有这么一项。刚开始看帮助的时候没有看仔细,没看到。谢谢了。

论坛徽章:
0
8 [报告]
发表于 2010-08-04 14:13 |只看该作者
不用谢
相互学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP