在C语言中用嵌入式SQL访问DB2数据库时,中文字段显示出现错误,具体情况为空白,通过打印字符的16进制码,发现是操作系统不支持中文引起的。
开发环境为AIX6.1, DB2 V9.5, 用标准C开发应用程序。
查看语言设置,如下:
#locale
LANG=en_US
LC_COLLATE="en_US"
LC_CTYPE="en_US"
LC_MONETARY="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_MESSAGES="en_US"
LC_ALL=
系统目前为 英文,
查看系统支持的语言包如下:
#locale -a
C
POSIX
en_US.8859-15
en_US.ISO8859-1
en_US
显然,目前的系统没有安装 中文语言包,上网搜了一下,由于语言包为系统自带,需要AIX的安装光盘,找到AIX光盘,通过远程终端,上传如下文件包到服务器:
bos.iconv
bos.loc.com.CN
bos.loc.com.utf
bos.loc.iso.zh
bos.loc.utf.ZH_CN
1. 安装语言包,SMITTY INSTALLP, 进入上传文件包的位置,输入如下安装命令
#smitty installp
下一步, 选择 Install and Update from ALL Available Software, 回车,
再下一步, 在 * INPUT device / directory for software [] 中输入 " . " , 表示当前路径,
接着在 * SOFTWARE to install [] 的地方 按F4, 可以选择要安装的软件包,
注意: 安装的时候需要 root 身份登录, 启用有一个包有依赖,如果安装失败,需要先安装完其他的才可以继续安装。
安装完成,F3 退出SMITTY,
#locale -a
C
POSIX
ZH_CN.UTF-8
ZH_CN
Zh_CN.GB18030
Zh_CN
Zh_TW.big5
Zh_TW
en_US.8859-15
en_US.ISO8859-1
en_US
zh_CN.IBM-eucCN
zh_CN
zh_TW.IBM-eucTW
zh_TW
现在系统可以支持中文了, 有 UTF-8, BG18030 等,
2. 设置系统语言环境, 在 .profile 文件中加入环境变量(bash为 .bash_profile)
export LANG=ZH_CN.UTF-8 或者 export LANG=ZH_CN #支持utf-8
export LANG=Zh_CN.GB18030 或者 export LANG=Zh_CN #支持 GB18030
注意设置的 ZH_CN 与 Zh_CN 的区别, (h 大小写问题)
重新登录后,
#locale
LANG=ZH_CN.UTF-8
LC_COLLATE="ZH_CN.UTF-8"
LC_CTYPE="ZH_CN.UTF-8"
LC_MONETARY="ZH_CN.UTF-8"
LC_NUMERIC="ZH_CN.UTF-8"
LC_TIME="ZH_CN.UTF-8"
LC_MESSAGES="ZH_CN.UTF-8"
LC_ALL=
3. 编译程序,运行. 发现显示还是不正确, 不是空白了,但是是乱码
查看登录终端的设置, 我用的是Secure-CRT, 发现在 选项 / 会话选项 / 外观 / 字符编码 为 default,
选择UTF-8 , 保存退出。
再次登录,运行程序, O.K. 搞定了。
4. TUXODO 对中文的支持,由于涉及到TUXEDO, 同时在重启 TUXEDO 服务时出现如下错误,
NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 748; check TUXDIR=/home/tuxedo/tuxedo8.1, LANG=ZH_CN.UTF-8
在TUXEDO 的主目录下,有一个 locale 目录, 进入后建立连接如下
# ln -s C ZH_CN.UTF-8
# ls -l
drwxr-xr-x 2 tuxedo tuxedo 4096 12月15 2010 C
lrwxrwxrwx 1 tuxedo tuxedo 1 1月09 17时23 ZH_CN.UTF-8 -> C
lrwxrwxrwx 1 tuxedo 300 1 12月08 14时02 en_US -> C
重新启动TUXEDO服务, 错误没有了。
分享到:
相关推荐
python开发web项目,使用flask_sqlachemy连接db2,写入数据库出现中文乱码
用触发器设置db2 字段自增长,我已经测试过了,很好用
DB2数据库控制中心乱码问题解决方法集合 在英文操作系统上,经常会出现DB2数据库控制中心乱码现象。 第1种方法: 把D:\Program Files\IBM\SQLLIB\java\jdk\jre\lib\font.properties.zh中的filename.SimSun=SimSun...
DB2 Blog字段联机备份数据丢失问题处理
英文操作系统,安装DB2后 控制中心--control center等会出现乱码情况,这里根据本人经验 把各种解决方法整理上传分享。
Toad for DB2是一种专业化、图形化的DB2开发和管理工具,用来帮助DBA和开发人员有效地完成他们的工作。它集成了模式浏览、SQL编程、开发和调试、DBA管理、SQL语句优化等多种功能。功能强大、低负载、简单易用,访问...
中文 DB2 快速入门的捷径 DB2 Express C 9.7 中文第三版. 中文 DB2 快速入门的捷径 DB2 Express C 9.7 中文第三版
c语言查询db2数据库,文档有个人在codeblocks中的环境配置截图案例,也有转载网友的此方面较全面的开发总结
DB2 联合数据库II应用程序开发指南 DB2 联合数据库II应用程序开发指南
很好的东西,使用DB2必备.也可以作平常复习巩固用,免费分享给大家了……
经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧
搜了一下这个license发现都是索取金币的,我给大家分享一个免费版的,支持共享~~~ ps.这个是V9.7 的license ...在/opt/IBM/db2/V9.7/adm/目录下执行 db2licm -a /opt/ibm/db2/V9.7/license/db2ese_c.lic
db2数据库的数据库管理语句,包含连接数据库,断开数据库连接,清空表数据,查seq值,导出数据库表结构,导出数据库数据,导入数据库表结构,导入数据库数据,增加字段,修改字段长度,备份数据库,恢复数据库,查看...
全部为中文资料,包括DB2快速入门、DB2故障指南、DB2管理指南计划、DB2迁移指南、DB2系统监视器指南、DB2性能指南 几个常规应用文档,希望对大家有帮助
DB2 V9中文手册 对刚入门的人有很大的帮助
db2数据库驱动程序: 压缩包中有 db2jcc.jar、db2jcc_license_cu.jar 两个 jar 包。用于连接db2数据库的驱动
详细解释lob字段在DB2中的存储及处理过程, 主要基于IBM Z平台。
db2dmc90_数据移动使用程序指南和参考.pdf db2f0c90_系统监视器指南和参考.pdf db2hac90_数据恢复和高可用行指南与参考.pdf db2irc90_发行说明.pdf db2irc91_修订包1的发行说明.pdf db2isc90_服务器快速入门.pdf db2...
db2支持中文字符 新建一个文件夹在zh-cn
由于要求上传资源要小于60Mb,所以只好将资源分成两个压缩包。 这两个压缩包包含DB2_V105数据库所有的相关官方中文文档。 这是第一个压缩包。 这是官方最新中文文档