`
daizh868
  • 浏览: 20094 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DB2中文字段在C程序中的乱码问题

阅读更多

在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服务, 错误没有了。

 

 

 

 


 

  

 

 

 

 

分享到:
评论

相关推荐

    flask_sqlachemy连接db2,插入中文乱码,问题解决

    python开发web项目,使用flask_sqlachemy连接db2,写入数据库出现中文乱码

    设置db2 字段自增长

    用触发器设置db2 字段自增长,我已经测试过了,很好用

    DB2数据库控制中心乱码问题解决方法

    DB2数据库控制中心乱码问题解决方法集合 在英文操作系统上,经常会出现DB2数据库控制中心乱码现象。 第1种方法: 把D:\Program Files\IBM\SQLLIB\java\jdk\jre\lib\font.properties.zh中的filename.SimSun=SimSun...

    DB2 Blog字段联机备份数据丢失问题处理

    DB2 Blog字段联机备份数据丢失问题处理

    DB2乱码解决方法大全

    英文操作系统,安装DB2后 控制中心--control center等会出现乱码情况,这里根据本人经验 把各种解决方法整理上传分享。

    Toad for DB2解决方案(中文)

    Toad for DB2是一种专业化、图形化的DB2开发和管理工具,用来帮助DBA和开发人员有效地完成他们的工作。它集成了模式浏览、SQL编程、开发和调试、DBA管理、SQL语句优化等多种功能。功能强大、低负载、简单易用,访问...

    DB2 Express C 9.7 3rd Edition Chinese.rar

    中文 DB2 快速入门的捷径 DB2 Express C 9.7 中文第三版. 中文 DB2 快速入门的捷径 DB2 Express C 9.7 中文第三版

    c语言查询DB2数据库开发+db2嵌入式c语言开发整理

    c语言查询db2数据库,文档有个人在codeblocks中的环境配置截图案例,也有转载网友的此方面较全面的开发总结

    DB2 联合数据库II应用程序开发指南

    DB2 联合数据库II应用程序开发指南 DB2 联合数据库II应用程序开发指南

    DB2中常用SQL语句

    很好的东西,使用DB2必备.也可以作平常复习巩固用,免费分享给大家了……

    mysql中文乱码解决

    经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧

    db2ese_c.lic (DB2 9.7 LINUX安装)

    搜了一下这个license发现都是索取金币的,我给大家分享一个免费版的,支持共享~~~ ps.这个是V9.7 的license ...在/opt/IBM/db2/V9.7/adm/目录下执行 db2licm -a /opt/ibm/db2/V9.7/license/db2ese_c.lic

    DB2常用语句

    db2数据库的数据库管理语句,包含连接数据库,断开数据库连接,清空表数据,查seq值,导出数据库表结构,导出数据库数据,导入数据库表结构,导入数据库数据,增加字段,修改字段长度,备份数据库,恢复数据库,查看...

    db2v9 中文参考资料

    全部为中文资料,包括DB2快速入门、DB2故障指南、DB2管理指南计划、DB2迁移指南、DB2系统监视器指南、DB2性能指南 几个常规应用文档,希望对大家有帮助

    DB2 V9中文手册5

    DB2 V9中文手册 对刚入门的人有很大的帮助

    db2数据库驱动程序 db2jcc.jar、db2jcc_license_cu.jar

    db2数据库驱动程序: 压缩包中有 db2jcc.jar、db2jcc_license_cu.jar 两个 jar 包。用于连接db2数据库的驱动

    DB2 LOB 详解

    详细解释lob字段在DB2中的存储及处理过程, 主要基于IBM Z平台。

    DB2 V9中文手册(1)

    db2dmc90_数据移动使用程序指南和参考.pdf db2f0c90_系统监视器指南和参考.pdf db2hac90_数据恢复和高可用行指南与参考.pdf db2irc90_发行说明.pdf db2irc91_修订包1的发行说明.pdf db2isc90_服务器快速入门.pdf db2...

    db2中文支持的字符

    db2支持中文字符 新建一个文件夹在zh-cn

    DB2_v105 官方中文参考手册(1)

    由于要求上传资源要小于60Mb,所以只好将资源分成两个压缩包。 这两个压缩包包含DB2_V105数据库所有的相关官方中文文档。 这是第一个压缩包。 这是官方最新中文文档

Global site tag (gtag.js) - Google Analytics