中文字符集问题解析.doc_第1页
中文字符集问题解析.doc_第2页
中文字符集问题解析.doc_第3页
中文字符集问题解析.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2012-07-19#2012-07-19#2#012-07-19#中文字符集问题解析文 /中国人民银行软件开发中心赵新鹏 尹建松 尹德明在理及显示问题。当系统中涉及多种操作系统、开发语计算机应用系统的开发过程中,经常会遇到汉字的处到 M Q 内部网关。4)W AS 从M Q 内部网关收到报文后将字节流还原为字符 串进行处理。5)W AS 将处理后的数据保存到数据库中。由于 T IPS 中 使用 2类的 J DBC 驱动,所以 W AS 通过 DB 2客户端访问数据 库服务器。J DBC 是一套 J AV A语言进行数据库编程的标准 AP I。言、应用中间件时,该问题就显加突出。本文以中国人民银行国库信息处理系统(T IPS )为例,对其遇到的汉字乱码问 题进行分析并提出解决方案。T IPS 是连接征税机关、商业银行、国库、财政、海关等 各方机构全国集中的统一横向联网中心。系统采用消息中间 件 M essag e Q ueue(M Q )中间件产品M essag e B roker(MB) 应用服务器产品 W ebsph ere Application Server(W AS )的 技术方案。各外连机构与中心系统通过 xm l报文进行通讯,报文中规定的字符集为 G B K (常用中文字符集的范围 G B 18030 G BK G B 2312)。 T IPS 上线初期,偶尔会出现中心收到的报文中某些中文字符变为乱码。我们从 T IPS 中与字符集相关的各个环节入手 分析出现乱码的原因,并提出解决方案。2.TIPS 外连机构1)W AS 从数据库中查询出数据,组成报文,转换为字节表 1 最初 T IPS 中字符集的设置一、T IPS 系统应用环境与 T IPS 连接的外连机构在 3000家以上,使用的操作系统、技术路线多种多样;T IPS 内部分为 M Q 外部网关、M B 、 M Q 内部网关、W AS、DB 2等多个处理环节,每个环节都有 可能导致乱码出现。经过初步分析,我们发现在 M B 纪录的 接收报文日志中并没有乱码,说明乱码很可能出现在 T IPS 后 续处理的某个环节。下面对 T IPS 中报文处理的各环节做简要 说明。报文传输过程如下。1.外连机构 TIPS1)外连机构的应用将字符串转换为字节流放入 M Q 。2)外连机构 M Q 将报文发送到 T IPS 的 M Q 外部网关。2012-07-13)9M Q#从#M#Q #外#部#网关#收#到报文后做相应处理后再转发#2012-07-19#2012-07-19#相关项值备注DB2所在操作系统的字符集GB18030DB2客户端使用的语言包自动选择MBMQ所在操作系统的字符集GB18030W AS 操作系统字符集IBM -eucCNChinese (Simplified EU C) zh_CN 最初工程师解释说该字符集对应的是 GBK ,后 来发现此字符集相当于 GB2312所有MQ 队列管理器的CCSID819(相当于ISO8859-1)W AS 中 J ava虚拟机启动参数指定的字符集GBKDB2建库指定的字符集GBK发送报文时将字符串转换为字节流指定的字符集(以上 A1和 B1环节)GBK同时为 TIPS 报文规范 中规定的字符集ESB 在进行报文处理之前,将字节流转换为字符串指定的字符 集(以上 A3和 B2环节)GBKW AS 中收到 B y tesM essag e 将字节流转换为字符串指定的字 符集(以上 A4环节)未指定默认使用 JVM 启动参 数中指定的字符集2012-07-19#2012-07-19#2#0#1#2#-07-技1术9#与#应#用#流放入 M Q 内部网关。2)M B 将报文路由到指定外部机构的 M Q 队列。3)外连机构的应用从 M Q 队列中取出报文转换为字符串 进行解析。最初 T IPS 中各个环节关于字符集的设置见表 1。表 2修改后的系统设置表二、问题分析1.W AS 解析报文乱码问题现象:当报文中出现某些字符时(这些字符的特点为G B K 字符集中存在,而 G B 2312字符集中不存在的字符,例如等),W AS 解析后出现乱码,应用不能正常处理。表现为验签失败;写入数据库中仍为乱码;从数据库中取出数据组报文时出错等系 列问题。分析:经过查找资料发现 W AS 操作系统使用的字符集实 际对应 G B 2312。JVM 启动参数中虽然设置了使用 G BK 字符 集, 但此设置受操作系统字符集的制约, 最终生效的是 G B 2312,不符合 T IPS 报文规范。要解决此问题,应将 W AS 所在操作系统字符集改为 G BK 。系统调整:错误的根本原因在于 W AS 操作系统字符 集,可通过调整此设置来解决,但在调整过程中发现 AIX5.3不支持 G B K 字符集。考虑到 G B 18030范围大于 G B K ,而且经过分析和实验发现,如果外连机构使用了不符合报文 规范的字符并不会导致系统出现故障,只是影响该笔业务交2.数据库提示信息乱码问题现象:解决问题 1后,带来了另外的问题。当数据库操作失败时,所有的提示信息都变为乱码。分析:由于 W AS 使用 2类 J DBC 驱动,可以确定这些提 示信息是由 DB 2客户端返回。DB 2客户端使用哪种语言包, 根据操作系统的语言环境自动选择。经过实验发现,DB 2客 户端与操作系统的 G B 18030字符集配合存在问题,因此将 DB 2语言包强行改为英文。系统调整:手工将中文的语言包删除,DB 2客户端找不 到中文语言包后会默认使用英文语言包。调整方法如下:易, 因此最终决定将 WG B 18030。操作步骤:A S 操作系统的字符集改为 三、最终系统设置确认修改是否成功:经过上述分析与试验,最终对 W AS 所在操作系统参数和DB 2客户端语言包进行相应的调整,中文乱码问题再未出现。 修改后的字符集相关参数配置见表 2。6 12007年 7月locale显示:L AN G = Zh _CN1)root用户登录 W AS 所在服务器2)cd /h om e/db2inst1/sqllib/m sg3)m v zh _CN .eucCN zh _CN .eucCN .bak4)m v zh _CN .g bk zh _CN .g bk.bak5)m v zh _CN .utf8 zh _CN .utf8.bak1)root用户登录 W AS 所在服务器2)sm itty lang3)选择 Ch ang e/Sh ow P rim ary L ang uag e E nvironment4)选择 Ch ang e/Sh ow CulturalConvention,L ang uag e,orK ey board5)将 P rim ary CU L T U R AL convention 和 P rim ary L AN - G U AG E translation 更改为 G B 18030 S -C h inese (G B 18030) Zh _CN ;(注意:大小写敏感!)6)P rim ary K E Y B O AR D 更改为 G B 18030 S -C h in ese(G B 18030)key board.Zh _CN ;(注意:大小写敏感!)相关项值备注DB2所在操作系统的字符集GB18030DB2客户端使用的语言包英文E SB 所在操作系统的字符集GB18030W AS 操作系统字符集GB18030S-Chinese(GB18030)Zh_CN所有 MQ 队列管理器的 CCSID819(相当于ISO8859-1)W AS 中 JVM 启动参数指定的字符集GBK操作系统不支持GBK,实际使用操作系统 指定的字符集DB2建库指定的字符集GBK发送报文时将字符串转换为字节流指定的字符集(以上 A1和 B1环节)GBK同时为 TIPS 报文规范中规定的字符集E SB 在进行报文处理之前,将字节流转换为字符串指定的字 符集(以上 A3和 B2环节)GBKW AS 中收到 By tesM essag e 将字节流转换为字符串指定的字 符集(以上 A4环节)未指定默认使用 J ava虚拟机启动参数中指定 的字符集Your request could not be processed because of a configuration error: Could not connect to LDAP server.For assistanc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论