WebSphere MQ中的CCSID

        CCSID是一个字符集的标识。作为unicode标准通过定义一个字符集内每个字符要对应那个数字值的方式定义了一个字符集。这说明CCSID就是一个定义字符集顺序的标识数码罢了。IBM的字符标识架构在文档 SC09-1390(http://www-304.ibm.com/jct03002c/software/globalization/cdra/index.jsphttp://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/FOCREF00/CCONTENTS)中做了定义,CCSID是IBM用来标识字符序列的标识代码。这个架构定义了SDCS(单字符集)的CCSID值,MBCS(多字符集)的CCSID值和混合单字符多字符集的混合CCSID值。多字符集的CCSID一般用于语言,比如中文,日文,韩文,这些语言的字符量很大,无法用单字节的码值来代表。

        CCSID间的转换有多种类型。其中一种转换就是从一种CCSID到另一种CCSID的转换,举例来说从ASCII(CCSID 1252)到EBCDIC(CCSID 37)。另一种是从串数据到另一种数据类型的转换。举例来说转换字符串数据到数值。在所有的这种类型的转换中都必须标识CCSID值来保证转换的正确进行。

        但是转换是有要求的,第一种转换的前提是转到的 CCSID的类型中要包含转换前的CCSID类型中要转换的字符,比如,如果从CCSID1381(S-CHGBPC-DATA) 类型的简体中文的PC编码中的一个中文字符"中"字到其他CCSID编码转换到的编码起码要求这个CCSID编码的字符集中包含同样的"中"字。

        runmqsc MQ名,然后输入

dis QMGR

        显示全信息,其中就有CCSID。


        由上可知,我服务器上队列管理器的CCSID是1381,客户机代码假设通过客户机中 MQI 的字符数据位于机器所配置的 CCSID 中。如果此 CCSID 是一个不支持的 CCSID 或不是必需的 CCSID,可以用 MQCCSID 环境变量覆盖它,例如,在 Windows上:

SET MQCCSID=1381

        或者,在 UNIX系统上:

export MQCCSID=1381

 

        安装好了MQ Server端并新建了QMGR,可以通过上面方法更改其MQCCSID,我们环境中所有QMGR的MQCCSID都是1381。

        在MQ Server上面任何用户在往该MQGR的queue里面放消息时,消息使用的字符编码都是1381(与QMGR的设定相同),这里即使在用户的profile里面export MQCCSID等于别的,结果消息也是始终与QMGR的设定保持一样。

        最后,export MQCCSID只有在MQ Client端才有用,通过export MQSERVER 连接到MQ Server的MQ Client端可以给用户的profile里面设定MQCCSID,如环境AIX上面如果没有给用户特别设定MQCCSID则default的是819即en_US.ISO8859-1。

 

参考文章:http://blog.chinaunix.net/uid-20652643-id-1906356.html

http://www.cnblogs.com/fromchaos/archive/2010/02/24/1672736.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值