blogger

    blogger
  • hot log

  • comment

    twitter

    • 空间续费,加上ssl连接。。

      2018-11-22 01:04

    • 12.10.xC6出来时候碰到"Could not determine encryption mode from page zero",竟果然是BUG!http://www-01.ibm.com/support/docview.wss?rs=630&uid=swg21973408

      2015-12-21 20:15

    • 空间已经转移到新加坡,希望会好一些。

      2015-11-16 14:34

    • 增加新域名liaosnet.cc,与liaosnet.com同指向。

      2015-10-09 15:25

    • 空间迁移到香港。或许速度会快一点。。

      2014-02-13 20:10

    • More»

    blog sort

    links

    record

    banner

    Informix中实现中文表名和字段名

    暗夜星空's Memory from Jan 30 , 2012 at 17:19 PM , under Category:IFX/GBase
    环境:操作系统为suse11,数据库版本为Informix V11.50FC9
    需要额外的文件包:ISL3.50MC3.tar(即IBM Informix International Language Supplement V3.30 MC2)中简体中文zh_CN.UTF8字符集支持。

    详细步骤:
    1,正常安装Informix V11.50FC9
    安装操作过程省略;

    2,使用glfiles检查当前数据库支持的字符集
    informix@suse11> glfiles
    将在当前目录下生成lc11.txt文件,可以检查发现当前支持的简体中文字符集包括
    	Filename: lc11/zh_cn/1570.lco
    	Language: Chinese
    	Territory: PRC
    	Code Set: GB18030-2000
    	Locale Name: zh_cn.GB18030-2000
    
    	Filename: lc11/zh_cn/e00d.lco
    	Language: Chinese
    	Territory: China
    	Code Set: gb
    	Locale Name: zh_cn.gb

    其中并没有需要的zh_CN.UTF8,因此需要为数据库加载zh_CN.UTF8字符集。

    3,为数据库加载zh_CN.UTF8字符集
    将ISL3.50MC3.tar解压缩后,把gls/lc11/zh_cn目录下的e00d.lco 及e01c.lc.gz文件复制到$INFORMIXDIR/gls/lc11/zh_cn目录下即可。然后再次使用glfiles命令重新生新lc11.txt,检查该文件,应该含有
    	Filename: lc11/zh_cn/e01c.lco
    	Language: Simplified Chinese
    	Territory: PRC
    	Code Set: utf8
    	Locale Name: zh_cn.utf8


    4,确认操作系统支持zh_CN.UTF-8
    使用locale -a 命令,然后检查是否支持zh_CN.UTF8(注en_US.UTF-8亦可)
    zh_CN.utf8

    5,设置数据库环境包启以下环境,然后初始化数据库
    	LANG=zh_CN.UTF-8
    	DB_LOCALE=zh_CN.UTF8
    	CLIENT_LOCALE=zh_CN.UTF8

    再创建数据库testdb,再使用sql确认新建的testdb库是否是zh_CN.UTF-8字符集的
    select * from sysmaster:sysdbslocale where dbs_dbsname='testdb';

    对应的dbs_collate应为zh_CN.57372 (57372对应的16进制即为e01c,和上面的文件名对应),表示字段集是zh_CN.UTF-8
    测试简体中文表名和字段名及数据
    informix@suse11:/opt/ids11> dbaccess testdb -
    	Database selected.
     > create table 测试 (编号 char(20), 姓名 char(20));
    
    	Table created.
    
     > insert into 测试 values('编号001','测试名字');
    
    	1 row(s) inserted.
    
     > select * from 测试;
    
    	编号    姓名 
    
    	编号001 测试名字
    	
    	1 row(s) retrieved.


    完成测试,显示正常!
    测试使用字符集zh_CN.GB18030-2000时却无法成功使用中文字段,与该文冲突http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1004sungr/index.html

    注:使用SecureCRT显示zh_CN.UTF8字符时,应该当在 会话选项->终端->外观 精确字体中选择UTF-8,否则将显示乱码。
    附:zh_cn.zip包含$INFORMIXDIR/gls/lc11/zh_cn下的简单中文字符集文件。
    zh_cn.zip