IBM CCSID对照表

对于MQ:windows上默认为1381(S-CH GB PC-DATA)(由它将1个汉字转换为字节竟然为3个字节?)(AIX上为1383?)

UTF-8 为1208(不同系统还不一样?)

GBK 为1386

详细对照表请看:http://www-01.ibm.com/software/globalization/ccsid/ccsid_registered.html

下面是在网上看到的,先留下:

IBM Coded Character Set Identifiers (CCSID)码表

MQ6.0在AIX 5L上的安装 设置环境变量
MQCCSID
值为队列管理器的CCSID或与之相匹配的CCSID。
例如Windows上的队列管理器的CCSID为1381,AIX上可设为1386或1208
export MQCCSID=1208
export MQCCSID=1386
--------------------------------------

CCSID是一个字符集的标识。作为unicode标准通过定义一个字符集内每个字符要对应那个数字值的方式定义了一个字符集。这说明CCSID就是一个定义字符集顺序的标识数码罢了。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编码的字符集中包含同样的"中"字。

-----------------------------------------------

WebSphere MQ 无法将 CCSID 1381 中标记的字符串数据转换为 CCSID 5488 中的数据。1381属于简体中文,5488属于GB18030,虽然都是中文,但是在语言集上是两个不相同的语言集,所以不能相互转换。实际上GB18030包含了简体中文,繁体中文以及几种少数民族的语言,后面两种字符都是在简体中文集中找不到对应映射的,所以不能转换。有一种可行的解决办法就是用UTF-8(1208)作为两种语言集的中介。

猜你喜欢

转载自xinklabi.iteye.com/blog/1146682