DB2 字符集问题

系统情况:系统: Linux RH 数据库: DB2 V9.5系统设置为中文模式(LANG=zh_CN.gbk), 中文字符能正确显示无乱码.创建数据库chinese, 配置如下:Database territory                        ...显示全部
系统情况:

系统: Linux RH
数据库: DB2 V9.5
系统设置为中文模式(LANG=zh_CN.gbk), 中文字符能正确显示无乱码.

创建数据库chinese, 配置如下:

Database territory                                                    =CN
Database code page                                               =1386
Database code set                                                  =86
Database country/region code                                =unique

实例的字符集也为1386(DB2CODEPAGE=1386)

问题 1 描述:

我在Linux打开一个terminal,  连接数据库并查询数据, 如果将terminal的字符编码设置为默认的GBK,显示中文字符没有任何问题,但是如果把字符编码设置为UTF-8则出现乱码; 如果我将实例的字符集设为UTF-8(DB2CODEPAGE=1208), 则情况相反,UTF-8能正常显示中问字符, GBK不能. 按照我的理解GBK和UTF-8之间的转码不应该有问题,所以不管我将terminal的字符编码设置为UTF-8还是GBK, 都应该能正常显示中文. 请赐教, 谢谢:)

问题 2 描述:

DB2的字符集设置有三个层次:

1. 操作系统级别
2. 实例级别
3. 数据库级别

我不太了解实例级别设置的意义, 假设我用Windows英文系统的命令窗口连接Database Server 并读取数据, 这个过程中要发生几次转码?

(server字符集设置如下: 数据库GBK, 实例UTF-8,操作系统为GBK)

(Windows系统的语言设置为中文)

是不是先从GBK转到UTF-8再转......................................请赐教,谢谢:):) 收起
参与16

回答者

maitianhust
擅长领域: 数据库

maitianhust 最近回答过的问题

回答状态

  • 发布时间:2010-04-01
  • 关注会员:0 人
  • 回答浏览:810
  • X社区推广