关键词:
阿拉伯数字/汉字转换
阿拉伯数字/汉字转换 篇1
一、实现原理
汉字在计算机中的处理, 以GB2312-80 (《信息交换用汉字编码字符集·基本集》) 标准为基础。
GB 2312-80标准共收录6763个汉字, 其中一级汉字3755个, 二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。
GB2312中对所收汉字进行了“分区”处理, 每区含有94个汉字/符号。这种表示方式也称为区位码。01-09区为特殊符号。16-55区为一级汉字, 按拼音排序。56-87区为二级汉字, 按部首笔画排序。10-15区及88-94区保留。
一级汉字由于按拼音排序, 它的转换比较简单, 可以通过确定汉字处于哪一个区间, 转换为相应的拼音首字母。二级汉字是按字母笔画排序, 它的转换可通过在程序中查表来实现, 但首先要做好二级汉字拼音首字母表。
二、实现方法
三、结束语
本文的程序在PB9.0下调试通过, 应用于我院财务收费系统中, 能转换GB2312-80中的一二级汉字。
参考文献
[1]李勇等编著.Power Builder8.0彻底研究.北京:中国铁道出版社.
阿拉伯数字/汉字转换 篇2
IBM的大型主机经历了近50多年的发展, 至今依然运行在各大公司的关键性任务上。但面对灵活多变的开放平台, 大型机系统仍然需要吸取其优点, 因此, IBM公司的SOA战略在此展现出来的就是赋予大型机连接、管理, 借用开放平台的能力。
IMS系统全称为Information Management System, 是主机系统上出现的第一代数据库系统和交易管理系统, 它的数据库管理系统是一种层次型数据库, 同时还具有交易管理系统的功能, 即Transaction management。
1 应用背景
为了IMS系统提供SOA增强, 使的它能更好的与开放平台相联系, 这样就能更好的重用现存的资产。IBM提供了一整套名为IMS SOA Intergration Suite的产品, 它是一组IMS中间件产品和工具的集合, 你可以利用它来在互联性, 数据表现, 应用开发和web访问方面现代化你原有的IMS应用程序。它包括了:
IMS MFS Web Solutions, IMS TM Resource Adapter, 等等许多工具。
在开发其中的IMS MFS Web Solution时, 我们遇到了浏览器与IMS系统在汉字编码方面的问题, 在我们的实验当中找到了合适的解决方法, 并记录成文。
MFS是IMS TM中的一项功能, 主要是为了定义终端显示与消息格式, 使得应用程序开发人员不必处理显示界面的问题。而MFS Web Solution又是为了使用web访问替代传统的终端访问, 具体实现是开放平台的web server通过TM Resource Adapter与主机端的IMS Connect相连接。
主机系统使用英文编码EBCDIC本身可以很好的支持英文字符的转换, 因为都是单字节字, 但是当我们使用汉字时, 情况有所不同。在主机系统内, 包括汉字在内的统称为DBCS (Double Byte Character Sets) , 合法的DBCS字符, 第一字节和第二字节的长度同为0x41到0xFE。
我们的主机是如何处理DBCS/EBCDIC混合情况的呢?它会在每个DBCS数据前面加上一个Shift out即0x0E, 然后在结尾加上一个Shift in即0x0F表示这是一个DBCS数据。但要怎样才能真正的做到在开放平台输入汉字能够正确的被主机IMS系统认识并处理, 返回正确的结果, 还需研究下面两个问题
2 问题及解决方案
2.1 问题一
如何在我们的MFS Web上能够正确的输入汉字, 并传入主机经过处理又正确的显示出来呢?
在主机以外的环境我们需要统一编码为UTF-8.
首先我们html页面的编码需要设成UTF-8, 然后将Servlet中在PrintWriter out=response.getWriter () ;之前添加如下代码, 表示同样使用UTF-8编码
这样, web系统读入和读出字符都将编码为utf-8。
然后最重要的一点是处理与主机通信时的编码。经过查找资料, 我们发现, 主机系统内的简体汉字编码采用的DBCS字符集为CP935, 繁体采用的为CP937, 这样在我们将字符转化成字节流传给主机时需要处理成主机认可的编码, 在我们这个系统中, 转换发生在函数
这里codepage需要设置成为CP935
这样当我们输入DISPLAY命令和所需查询的用户名cxy1时, 能够正确的返回之前相同页面添加进去的“陈”字。
2.2 问题二
当我们正确的处理了上面一个问题, 又会遇到一个特别的问题, 比如我们输入“豫”这个字, 结果传回来显示确是“藻”。还有同样的例子, 比如“万”显示成了“卧”。
经过仔细的研究, 发现, 万在cp935中编码为1110 101011110010011 1111而豫编码为1110 1011010 10100100 1111.
, 在从utf-8到cp935的转换过程中, 编码一直正确, 但是当他们从主机端返回时, 编码却变成了1110 1010111 11010011 1111和1110 1011010 11100100 1111请注意加重的部分, 这表示在同样的这一位, 由0变成了1.这又是什么原因造成的呢。通过对资料的检索, 发现在Chapter 4 DFSUPAA0 in IMS v11 System Utilities中提到说
由此可见万字的第二个字节10010011属于x'91'-x'99'.所以它被当作EBCDIC码转换成了大写字母变成11010011.
这样我们只要将系统中GRAPHIC=设为NO即可。
3 结论
本文论述了主机系统字符集相关概念, 解决了开发IMS Web模拟程序过程中遇到的两个典型问题, 由此IMS SOA系统已经可以正常的处理和使用汉字, 这样就为我们重用现有的资源, 扩大IMS系统灵活性提供了便利。
参考文献
[1]Gray Wicks, Egide Van Aerschot.Power SOA Solutions with IMS.IBMPRESS, 2009, 3.
相关文章:
火锅店店长的工作总结02-13
左手右手舞蹈串词02-13
舞蹈张灯结彩节目串词02-13
舞蹈春天在哪里串词02-13
舞蹈俏花旦串词02-13
宁波中考作文题目02-13
《繁星春水》读后感300字三年级作文02-13
游宁波动物园作文400字02-13
中心小学2012工作汇报材料02-13
游宁波夜景作文02-13