汉字编译码
‘壹’ 编一个字符译码程序。译码规律:用原来字符后面的第六个字符代替原来的字符。例如:A代替G,原码program
if(strlen(str) > 6)
{
for(int i;i <= strlen(str) - 1 - 6;i++)
{
str[i]=str[i+6];
}
}
‘贰’ 什么是编码什么是解码为什么要编码.解码谢谢!
编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码简称编码。用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。编码在电子计算机、电视、遥控和通讯等方面广泛使用。编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。
解码是一种用特定方法,把数码还原成它所代表的内容或将电脉冲信号、光信号、无线电波等转换成它所代表的信息、数据等的过程。解码是受传者将接受到的符号或代码还原为信息的过程,与编码过程相对应。
(2)汉字编译码扩展阅读:
GB编码标准中,比较常用的是GB2312和GBK两种,GB2312是GBK的一个子集,GB2312编码范围是 0xA1A1 - 0xFEFE ,如果纯粹的 GB2312编码,处理起来是十分简单的,但处理GBK字符集时有些小的提示,先说说GBK编码的标准吧:
GBK 采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。
‘叁’ 什么是汉信码
汉信码
参考:
http://www.aidcchina.org
http://www.barcode123.com.cn
一、关于二维码
随着经济全球化、信息网络化进程的加快,信息技术已成为推动我国经济发展、带动传统产业实现产业优化升级以及工业化、现代化的重要手段。作为信息技术的重要组成部分,自动识别与数据采集技术实现了信息系统获取信息的高效率与自动化,是促进信息有效利用的重要技术手段。
自20世纪90年代以来,条码技术解决了计算机应用中数据采集的瓶颈,实现了信息的快速、准确获取和传输,在我国商品流通、国际贸易、信息化建设和经济发展中发挥了重要作用。条码技术的应用已从单一的商品标识、POS结算,发展成为贯穿于生产、仓储、配送、销售、跟踪与质量追溯的整个供应链和物流的全过程。应用领域已从成熟的商业POS结算,逐渐渗透到工业、交通运输业、邮电通讯业、医疗卫生、安全检查、票证管理以及军事装备等各个行业中。
人们通常所看到的印刷在商品包装上的条码是一维条码,一维条码在商业POS结算和流通等领域的广泛应用,取得了显着的社会效益和经济效益。但由于受信息容量的限制,一维条码通常只是对物品的类别进行标识,而不能对物品的属性进行描述。在通用商品条码的应用系统中,对商品的属性信息,如生产日期、价格等的描述必须依赖于数据库的支持。在没
有预先建立商品数据库或不便联网的地方,用一维条码表示汉字和图像信息是不可能的。
随着现代信息管理需求的不断增加,迫切需要在条码有限的几何空间内表示更多的信息,以满足千变万化的信息表示的需要。二维条码的出世,大大弥补了一维条码的不足,并逐渐显示出其技术的优势。
二维条码是在一维条码无法满足现代信息产业技术发展需求的前提下产生的。它解决了一直困扰人们的用条码对“物品”进行描述的问题,使得条码真正地成为信息存储和识别的有效工具。它除具备一维条码的优点外,同时还具有信息容量大、可靠性高、可表示图像、汉字等多种文字信息、保密防伪性强等优点。
二维条码的主要特征是二维条码符号在水平和垂直两个方向均表示数据信息,可以实现不依赖于数据库的支持,独立存储和标识信息。根据二维条码的生成原理和结构形状,可分类为行排式二维条码和矩阵式二维条码。行排式二维条码是在一维条码的基础上,通过两行或多行高度截短后的一维条码的堆积,在增加行识别、错误纠正等特性的基础上来实现信息表示,如图所示为行排式四一七二维条码。
矩阵式二维条码在结构形状上具有矩阵的特征。它以计算机图像处理技术为基础,在矩阵相应元素位置上,用点(方点、圆点等)的出现表示二进制的“1”,点的不出现表示二进制的“0”,点的不同排列组合表示矩阵二维码所表示的数据信息。如图所示为矩阵式QR码、汉信码。
二、关于汉信码
(一)汉信码的开发
由中国物品编码中心完成的国家“十五”重大科技专项——《二维条码新码制开发与关键技术标准研究》取得了突破性成果,研究成果包括:研究开发汉信码新码制、开发汉信码生成软件、开发汉信码识读技术及算法、汉信码硬件设备研发、汉信码装备研制、汉信码通讯技术研发以及编制汉信码国家标准等的系列工作。 2005年12月26日,由2位院士(倪光南、何德全)担任组长的专家组对《二维条码新码制开发与关键技术标准研究》进行了鉴定,专家们一致认为:该课题攻克了二维条码码图设计、汉字编码方案、纠错编译码算法、符号识读与畸变矫正等关键技术,研制的汉信码具有抗畸变、抗污损能力强,信息容量高等特点,达到了国际先进水平。专家们建议相关部门尽快将该课题的研究成果产业化,并积极组织试点及推广,同时建议将汉信码国家标准申报成为国际标准。
中国物品编码中心在完成国家重大标准专项课题《二维条码新码制开发与关键技术标准研究》的基础上,于2006年向国家知识产权局申请了《纠错编码方法》、《数据信息的编码方法》、《二维条码编码的汉字信息压缩方法》、《生成二维条码的方法》、《二维条码符号转换为编码信息的方法》、《二维条码图形畸变校正的方法》、等六项技术专利成果。
(二)汉信码的技术特点
1. 超强的汉字表示能力(支持GB 18030中规定的160万个汉字信息字符);
2. 汉字编码效率高(采用12比特的压缩比率,每个符号可表示12~2174个汉字字符);
3. 信息密度高(可以用来表示数字、英文字母、汉字、图像、声音、多媒体等一切可以二进制化的信息);
4. 信息容量大(可以将照片、指纹、掌纹、签字、声音、文字等凡可数字化的信息进行编码);
5. 支持加密技术(是第一种在码制中预留加密接口的条码,它可以与各种加密算法和密码协议进行集成,因此具有极强的保密防伪性能);
6. 抗污损和畸变能力强(可以被附着在常用的平面或桶装物品上,并且可以在缺失两个定位标的情况下进行识读);
7. 修正错误能力强(采用世界先进的数学纠错理论,采用太空信息传输中常采用的Reed-Solomon纠错算法,使得汉信码的纠错能力可以达到30%。) ;
8.可供用户选择的纠错能力(汉信码提供四种纠错等级,使得用户可以根据自己的需要在8%、15%、23%和30%各种纠错等级上进行选择,从而具有高度的适应能力);
9. 符号无成本(利用现有的点阵、激光、喷墨、热敏/热转印、制卡机等打印技术,即可在纸张、卡片、PVC、甚至金属表面上印出汉信码。由此所增加的费用仅是油墨的成本,可以真正称得上是一种“零成本”技术);
10. 条码符号的形状可变(支持84个版本,可以由用户自主进行选择,最小码仅有指甲大小);
11. 外形美观(考虑到人的视觉接受能力,在视觉感官上具有突出的特点)。
(三)汉信码的设备开发
2006年6月12日,针对汉信码设备的开发召开了专家论证会,2006年6月29日正式立项。为了对汉信码生成与识读验证系统中的技术进行细化与考量,通过进一步的深入研究,将原有的编码算法、解码算法、识读算法、纠错算法进行设备化的改造和实现,通过设备研制过程解决新问题,发现新算法,整体提高汉信码生成和识读系统性能。通过多方合作解决了生成和识读系统的软硬件难题,研制成功可以生成和识读汉信码符号的系统与设备,并开展试点应用。
研究的内容:
(1)对汉信码符号生成技术、汉信码符号识读技术的优化和改进的研究。
(2)嵌入式CMOS、在线式CMOS、手机的汉信码识读设备的样机研发
(a)以PC为平台、以CMOS为采集端的在线式汉信码识读设备及软件
(b)嵌入式CMOS摄像头汉信码识读设备
(c)CMOS摄像头汉信码识读手机
开发出的识读设备:
嵌入式一款:AIDC-H16 手机一款:多普达830 手持设备
在线式三款:
嵌入式识读设备:
(四)汉信码应用试点和推广
1、北京西南物流中心——汉信码在图书物流信息系统中的应用
北京西南物流中心:推动了图书行业的汉信码应用。与北京西南物流中心联系的出版社、图书批销中心、书店、图书馆等,对汉信码都非常感兴趣,认为汉信码的应用能够极大的推动图书行业的信息化进程,应用前景广阔。
2、北京万博网迅科技有限公司——汉信码在铁路重要物资质量跟踪追溯系统中的应用。
汉信码在特殊行业的应用(铁路重要物资质量跟踪追溯)。实现了金属物体汉信码的应用,攻克了汉信码在金属表面的刻蚀和识读难题,极大的拓宽了汉信码的应用领域。
3、天津天保冈谷国际物流有限公司——汉信码在仓库散货管理中的应用
实现了汉信码在仓库散货管理中的应用。规范了工作流程,提升了工作效率,并且初步实现了与上下游企业的业务数据交换,提升了工作效率,降低了成本,避免了数据录入的差错,经济效益和社会效益都非常明显。
4、国家电子发展基金项目“畅想供应链管理系统”——汉信码在供应链软件中的应用
汉信码在供应链软件中的应用。通过供应链软件在企业中的应用,能够进一步推动汉信码在供应链上下游企业的应用。
5、天津市高职高专院校首届“顶力杯”物流技能竞赛中的应用
6、北京师范大学第二届数学建模竞赛中的汉信码应用——汉信码竞赛/考试应用系统。
将汉信码技术与高校专业人才培养结合在一起,不仅使参赛选手和竞赛组织单位认识汉信码,而且将汉信码技术融于竞赛的始终,取得了很好的社会效益。
三、汉信码的应用前景
汉信码作为一种矩阵式二维条码,它具有汉字编码能力强、抗污损、抗畸变、信息容量大等特点,是一种十分适合在我国广泛应用的二维条码,具有广阔的市场前景。
1. 政府及主管部门
政府办公、电子政务、国防军队、医疗卫生、公安出入境、公安消防、贵重物品防伪、海关管理、食品安全、产品追踪、金融保险、质检监察、交通运输、人口管理、出版发行、票证/卡等。
2. 移动商务、互联网及相关行业
移动通讯、票务业、广告业、互联网等;如手机条码、移动通讯、电子票务/电子票证、电子商务等;
3. 供应链管理
装备制造、物流业、零售业、流通业、物流供应链等。
4. 其他领域
四、二维码的应用趋势
据国际权威机构调查统计:未来3-5年二维条码的市场将呈现高速增长的态势。二维条码作为一种全新的信息存储、传递和识别技术,自诞生之日起就得到了世界上许多国家的关注。美国、德国、日本、墨西哥、埃及、哥伦比亚、巴西、菲律宾、南非、加拿大等国家不仅已将二维条码应用于公安、外交、军事等部门对各类证件的管理,而且也将二维条码应用于海关、税务等部门对各类报表、票据的管理,商业、交通运输部门对商品及货物运输的管理,邮政部门对邮政包裹的管理,工业生产领域对工业生产线的自动化管理等。
在我国,二维条码技术的推广应用工作得到了国家领导、国家有关部门的大力支持及社会各界的极大关注。现已在汽车自动化生产线、武警车辆管理、银行汇票上得到了初步应用(采用国外码制),在1999年全国人大第九届三次全体会议和全国政协第九届三次全体会议期间,将二维条码成功地应用在对随行人员证件、记者证、旁听证的管理,引起了与会代表和新闻界的极大兴趣;我国香港特区已将二维条码应用在特别行政区的护照上。
二维条码这一高新技术的上述优势特别适合我国政府办公、军队、工商管理、金融税务、物流、等众多领域信息化的需求。在货物运输方面,由于二维条码可以对物品进行描述,解决了货物保险索赔、海关虚假报关的难题;在银行金融系统,在支票、汇票使用二维条码,银行可以设置自己的密码,防止假支票、汇票的出现;在工商管理系统,在营业执照上使用二维条码,可有效地防止假执照,大大简化年审验照手续,有利于公共数据的传输和采集;在名贵字画、珠宝上使用二维条码,可直接存储图像,起到有效的防伪作用。
近年来,随着手机摄像功能及智能化程度的日益提高,以“摄像”识别为基础的二维条码,开始进入了大众应用领域,通过手机的摄像头,普通人可以轻松地获取二维条码信息,可以自动地获得上网服务等。因此,二维条码技术的成功应用,将会极大地推动我国上述领域的信息化水平,提高管理效率,社会经济效益显着。
‘肆’ 汉信码的汉信码简介
2005年12月26日,由2位院士(倪光南、何德全)担任组长的专家组对《二维条码新码制开发与关键技术标准研究》进行了鉴定,专家们一致认为:该课题攻克了二维条码码图设计、汉字编码方案、纠错编译码算法、符号识读与畸变矫正等关键技术,研制的汉信码具有抗畸变、抗污损能力强,信息容量高等特点,达到了国际先进水平。专家们建议相关部门尽快将该课题的研究成果产业化,并积极组织试点及推广,同时建议将汉信码国家标准申报成为国际标准。
中国物品编码中心在完成国家重大标准专项课题《二维条码新码制开发与关键技术标准研究》的基础上,于2006年向国家知识产权局申请了《纠错编码方法》、《数据信息的编码方法》、《二维条码编码的汉字信息压缩方法》、《生成二维条码的方法》、《二维条码符号转换为编码信息的方法》、《二维条码图形畸变校正的方法》、等六项技术专利成果。 1. 超强的汉字表示能力(支持GB 18030中规定的160万个汉字信息字符);
2. 汉字编码效率高(采用12比特的压缩比率,每个符号可表示12~2174个汉字字符);
3. 信息密度高(可以用来表示数字、英文字母、汉字、图像、声音、多媒体等一切可以二进制化的信息);
4. 信息容量大(可以将照片、指纹、掌纹、签字、声音、文字等凡可数字化的信息进行编码);
5. 支持加密技术(是第一种在码制中预留加密接口的条码,它可以与各种加密算法和密码协议进行集成,因此具有极强的保密防伪性能);
6. 抗污损和畸变能力强(可以被附着在常用的平面或桶装物品上,并且可以在缺失两个定位标的情况下进行识读);
7. 修正错误能力强(采用世界先进的数学纠错理论,采用太空信息传输中常采用的Reed-Solomon纠错算法,使得汉信码的纠错能力可以达到30%。) ;
8.可供用户选择的纠错能力(汉信码提供四种纠错等级,使得用户可以根据自己的需要在8%、15%、23%和30%各种纠错等级上进行选择,从而具有高度的适应能力);
9. 符号无成本(利用现有的点阵、激光、喷墨、热敏/热转印、制卡机等打印技术,即可在纸张、卡片、PVC、甚至金属表面上印出汉信码。由此所增加的费用仅是油墨的成本,可以真正称得上是一种“零成本”技术);
10. 条码符号的形状可变(支持84个版本,可以由用户自主进行选择,最小码仅有指甲大小);
11. 外形美观(考虑到人的视觉接受能力,在视觉感官上具有突出的特点)。
‘伍’ C语言或MATLAB编写一个汉字的编码和解码的程序代码
几百行吧
500元我帮你写 zfb 15240582975
‘陆’ 啥是汉字全息码
本发明的汉字全息码电脑通用键盘输入技术包括部首;笔画:横(一)、竖(丨)、点(丶)、撇(丿)提( );笔顺:从上到下、从左到右、先横后竖、先中间后两边。所述的部首选用100个部首字,按照其拼音的第一个字母标识在相应的公知电脑通用键盘的26个英文字母键上,其结构如下:英文键 汉语拼音的第一个字母码Q [犬(大犭 豕)] (示礻)W [王]( )韦( )文(攵)E [耳(阝卩)]二( )儿儿 )R [人(亻)]日T 扌(手)] 亠(丄)土田Y [月(曰 )]乂又幺( )羊( )U [巫( )]I [衣( 衤)]O (去 码功能键)P [爿(丬片)]丿( )A [广]厂( )S [水( 氵)]丨( )十( )厶( )D [丁(丅 )]、( 丶)刀(刂)歹F G [弓]?6?5(丨乚 工( )骨H [火(灬)]-(一)禾
J [金(钅)几(几几)巾彐( 彐 )己( )臼K [口]凵L [立]了力 (角)里( )Z [竹(?6?8)]止( )爪(爫 )走( 之辶廴)足(?6?4)隹X [心(忄 )]夕(攵)习(习)小( )C [艹( 屮)]寸车( )虫V( )[鱼(鱼)]雨B [卜( )]八(丷八)勹( ?6?8 )匕冫( )贝( )白髟N [女]丶廿( )牛( ?6?4)M [木)冖(冂 ) (门)马(马)目(目四)*说明:[ ]内为键名部首,( )内为变化、繁体。
从上表可见,在这些英文键盘的26个键名中,V没有相应的语音拼音改作 ,O没有相应部首字,留作功能键。所述的笔画还包括弯、捺、钩,并以横、竖、点、撇、弯、提、捺、钩的顺序编排,其中凡带钩的笔画一律作钩,所述的笔顺还包括先撇后捺,先外后里再封口,并以先横后竖,先撇后捺,先外后里,先外后里再封口先中间后两边的编码规则编排。使用上述100个部首的汉字全息编码全部采用英文键盘的四位代码输入方法。这种汉字编码输入技术,简称全息 码。
与以往的汉字信息检索输入码相比,本发明的汉字全息码电脑通用键盘输入技术,由于优先选用了常用的100个形、音、义皆全的并具有极强的组字能力的传统部首以及简易的笔画规则,既符合人们常识和习惯,易于记忆,又可使汉字信息边界清楚,具有简单易学,操作方便,输入速度快,重码率低以及推广容易等优点。
本发明比较以往的输入码,只要掌握100个常识部首字的第一个拼音字母,用相应的外文(英、俄、德、法、意、日、拉丁、国际音标等等)键盘配合,100个部首字第一个拼音字母、在电脑通用键盘的26个英文字母键上标识,使全世界学习、使用汉文的人共同使用;本发明的独创性还在于它的简约化,一切从简从易,抛弃了所有人为的口诀和主观地定角、定高低、定区位的死记硬背的繁文褥节;本发明还灵活、和谐地将字母码与数码结合起来,使各种用户与机件都可通用。
本发明能广泛用于通用小键盘电子计算机和各种汉语工具书,取得了电脑、辞书、资料、电信四者编码的一致性。
采用本发明,大约只要化半天或一天时间就能编码上机,并具有不需专门培训,软硬件成本低廉,适合于小键盘通用件,平均击键次数少(每字平均约1.33次),重码率低(低于千分之一)等优点。
此外,本发明至少还可以在以下十个方面应用:1,中文电脑打字、编辑、排版;2,电报码与电传码统一于拉丁化字母,可由机器自动译为中文;3,全国邮政编码;4,中外文机器助译;5,古汉语与白话文机器助译;6,速记;7,缩写;8,图书编目、辞书索引用全息码;9,速抄、缩录;10,医药自我咨询,及农林牧副渔工商财文军政各行各业管理咨询。
本发明使繁难的方块汉字变成超过任何一种西文的全息码且发掘了汉字内在的美质,使汉字变成科学、规范、精炼、整齐、优美的集约化的编码,从而成为东西方文明大交流的一座宏伟的桥梁。
以下,将结合实施例对本发明作更详细的叙述。
实施例1按100部首字汉语拼音的第一个字母顺序排列。26个字母中,V改作 使用,O没有相应的部首字,留作功能键使用。100个部首字都是常用字,第一个拼音字母为广大用户所熟知。基本笔画出于唐宋以来沿习一千多年的“永字八法”,念作:横、竖、撇、点、捺、挑、弯、勾。凡带钩的一律作勾。用8种笔画显然比5笔、6笔更符合汉字实际,又大大增加了区分重码的离散度。
2,笔顺的七条规则:五万多个汉字,其形体千变万化,但书写的笔顺只有下列七条简单的规则。(“杞”字码等编码将笔顺规则增加到10条以上,是不合理的。)初小文化程度的用户,从小到老都应遵守这些规则,千百年来已成人们的习惯。无论从习惯上说,还是从视觉上说,起笔部首、续笔部首和接尾部首收笔部首、是最容易识别的。汉字中80%以上为形声字,由形旁与声旁两个偏旁组成,取起笔部首、续笔部首和接尾部首、收笔部首,也就完全兼顾了左右或上下两个偏旁,而不至于集中在一个偏旁里,充分发挥了加大离散度和去重码的作用。
依笔顺的7条习惯规则(先横后竖、先撇后捺、先左后右、先上后下、先外后里、先外后里再封口、先中间后两边),将汉字分解为部首(包括笔画);分解部首取最多笔画者。
汉字笔顺规则并举例如下:(1)先横后竖 “十”为“一丨”“干”为“一一丨”(2)先撇后捺 “人”为“丿 ”“大”为“一丿 ”(3)先上后下 “兀”为一丿乚”“区”为“一丿丶乚”(4)先左后右 “么”为“丿 丶”“仆”为“丿丨丨丶”(5)先外后里 “月”为“丿一一”“勺”为“丿丶”(6)先外后里再封口 “日”为“丨一一”“四”为“丨乛丿 一”
(7)先中间后两边 “小”为“亅′丶”“山”为“丨 丨”以上是为了说明笔顺规则,将例字分解成笔画,而本发明的编码表,则是依笔顺分解部首,每一步分解以最多笔画的部首为原则。如“鞘”字分解为“廿口十小月”,而不是“一…一”等等。汉字中极个别字需倒转纸张书版写成反文,如“或”字等,仍依实际书写的笔顺分解部首。
3,编码实例:(1)部首字:100部首表中的部首,既是最常用的部首,又基本是独立的常识字。我反对把部首割裂成支离破碎的“字根”或“字符”,因为除了专门的编码员外谁都不识。部首以音归类,分一笔部首和组字能力较强的键名部首、一般部首。这样区分目的,是为了下面给复合字编码时减少重码字,使用上述100部首的汉字全息码电脑通用键盘输入技术,其编码步骤全部采用四个代码输入方法。在检索单部首字时不必区分,都以部首拼音声母、韵母的第一字母、起笔笔画、续笔笔画、末笔笔画代码击键,正体、变体、简体、繁体都这样编码,不能再分笔画的击O键。
因为一个拼音字母之下有几个部首字,用上述三个笔画具有8×8×8=512的离散度,不会有重码。例如:一:HHOO 二:EHHO 三:SHHH::MDGO 门:MDSG 金:JPNH马:MWGH 木:MHSN 目:MSWH在同一拼音字母下,由于离散度大,部首基本不重码。
(2)两个部首的复合字:也用4个拼音字母代码,击键4次。
本发明编码不用字型区分,与王永明发明的“五笔字型”不同。王永明将字型分为左右型、上下型、杂型,实际上汉字字型远不止3种,还有左中右、上中下、对角、交叉、半包、全包等多种,而且有时实难区分。信息利用的价值,在于信息的确定性。对于边界模糊的、难以区分的信息,用了反而容易出错。故本发明的全息码将字型区分排除在外。
两个部首的复合字,编码如下:××××起起收末笔 笔笔部笔部首 首部末部末笔 笔首画首画这样,在两部首代码相同的情况下,还有8×8=64种离散度,比王永明用3种字型和5种笔画区分的3×5=15种离散度大4倍以上,因此重码少得多。
如起、末两部首为键名部首,可特殊对待,不需加笔画来区分,都改为O,用移动O还可以调整重码字使之不重码。双部首复合字编例:冰:BTSO 江:SOGH 扛:TOGO闰:MGWO 枉:MOWO 枚:MOWN(3)三个部首复合字:4个代码依次为:起笔部首、起笔部首末笔画、续笔部首、收笔部首。当起笔部首为键名部首时,连击O键,不再击其末笔笔画代码。例如:种:HDKS 桂:MOTT 花:CORB祝:QDKE 贺:LPKB 你:ROBX合:ROHK 欢:YDBR 树:MOYC如遇极少的重码字,可用插入O去重。0键去重码的作用很大,因为用足26个字母比用25个字母增加离散度为264-254=66,351,大大减少重码。
(4)四个以上部首的复合字:一般取起笔部首、起笔部首末笔画、接尾部首、收笔部首。若遇起笔部首为键名部首时,第二码改为续笔部首。
本发明充分利用26个字母,总离散度为26×26×26=456,976,对区分6万个汉字已足够。例:民:GGHG 族:TBRQ 麒:AWEB麟:AGWS 醇:XHLH(5)词语文献快速码:本发明的全息码,离散度达到456,976,除可输入5万多汉字外,还可输入40万条词语。输入词语,同样是用4个拼音字母,击键4次,这就意味着可以大提高输入单字的速度。汉字词语有2、3、4、5…等单字构成,40万条词语平均约120万字,原来要击键120万×4=480万次,现在只要击键160万次,平均每个方块字输入击键为1.33次,汉字具有单字构词能力,一个方块字相当于西文一个词汇,这就大大优于任何一种西文词语。
1).二个字的词语编码:2个字都分别取起笔部首与收笔部首(部首字改为末笔画),为4个字母的等长码。如词语中有一字为键名部首字,作特殊对待,后加O码,以区别末笔画相同部首。如:海洋:SDSY 国家:MHDB 乙炔:GGHR人民:ROGG 幸福:TSQT 辛勤:LSNL2)三个字的词语编码:第一个字取首尾两个部首,再取第二、三字的起始部首;如第一个字为部首字,取其起始部首、末笔笔画;如第一个字为键名部首,则取其部首编码加O。例如:地球仪:TGWR;金字塔:JODT;大世界:QNNT;不夜城:DBTT;游乐场:SHPT。
3)四个以上字的词语:取一、二、三及末字起始部首。如:统一战线:YHBY,胸有成竹:YSAZ;成竹在胸;AZSY;中华人民共和国:KRRM;诺贝尔奖金:YBBJ;马列主义:MDTD;马克思列宁主义。MSTD;鲁迅全集:VGRZ;二十四史:ESMK;达尔文学说:QBWY;高能物理:TSNW;万里长城:DLPT;万里长征;DLPE。
当然,专用名词还可划分词类编码,如“中华 人民 共和 国”为“KSRS ROGG NBHK MWDH”,划分后译成方块汉字同“中华人民共和国(KRRM)”。
在上述编码输入技术的基础上,为了充分利用公知电脑通用键盘,另选用100个部首,它们以二位数字代码代替拼音字母,安排在同一电脑通用键盘英文键上部的0-9共10个数字键上,其结构如下:数字键 部首部分 数字键 部首部分 数字键 部首部分 数字键部首部分01 一(一) 02 丨(丿) 03 丿( ) 04 丶( 丶)05 06 丿 07 ( ) 08 ?6?5( )09 二( ) 10 十( ) 11 厂( ) 12 丁( )13 卜(卜) 14 乂 15 八(丷 ) 16 人(亻)17 勹( ) 18 儿(儿儿) 19 几(几 ) 20 匕21 冫(丄) 22 ( ) 23 24 凵25 厶( ) 26 又 27 了 28 刀(刂)29 力 30 三( 彡巛) 31 干( ) 32 土33 工( ) 34 卄( 屮) 35 寸 36 扌( 手)37 口 38 山 39 巾 40 夕(久)41 广 42 门 (门) 43 ( 彐 ) 44 尸(卩已)45 弓 46 己( ) 47 女 48 幺( )49 马(马) 50 小(忄 ) 51 习(习) 52 丰( )53 王 54 韦( ) 55 廿( ) 56 木
57 犬(大犭 豕) 58 歹 59 车( ) 60 止( )61 日 62 贝(贝) 63 牛( ) 64 爪(爫 )65 月(日 ) 66 67 文(攵) 68 火(灬)69 心(忄 ) 70 爿(丬片) 71 水 ( 氵) 72 示(示衤)73 石 74 目(目四) 75 田 76 禾77 白 78 立 79 穴 80 耳(阝卩)81 西(西) 82 虫 83 竹(?6?8) 84 臼83 86 衣( 衤) 87 羊( ?6?2) 88 走( 之辶廴)89 巫( ) 90 里( ) 91 足(?6?4) 92 身93 言(讠) 94 面 95 隹 96 金(钅)97 鱼(鱼) 98 骨 99 食 (食饣) 00 髟这种输入技术简称为“全息Ⅲ码”,其编码步骤除了部首有唯一的编码,毋须用起末笔画外,其它编码顺序则似“全息Ⅰ码”。编码步骤则全部采用六个代码输入方法。
“全息Ⅱ码”与“全息Ⅰ码”在总体上是一致的,都顺应了群众对部首、笔顺、笔画的常识、习惯,少利用拼音这一信息,是完全适应不识西文和拼音字母的用户的,但它可用于只有10个数字键的更小的键盘,也适用于用数字代码的电报码。它的又一特点是离散度更大,为100×100×100=100万,是“全息Ⅰ码”离散度约46万的2.2倍,可容纳的字、词更多而重码更少。
2.编码实例:
“全息Ⅲ码”规则基本上同“全息Ⅰ码”,但考虑到Ⅲ码是两个数字码针对一个部首字,不需要在同一个拼音字中用起末笔画来选定,故用*来填空位,重码字亦可用*号并移动它来区分;括号内的变体则加击起笔笔画、续笔笔画。
(1)单部首字:在6位数中第一、二位击其编号,后连击空格键填空;括号内的变体则加击起笔笔画、续笔笔画。
一:01**** 二:09**** 三:30****:23**** 门:42****马:49**** 木:56**** 目:74****(2)双部首复合字:在6位数中第一至四位击其编号,后连击空格键填空冰:2271** 江:7133** 扛:3633**闰:4253** 杠:5633** 枚:5667**(3)三个以上部首复合字:在6位数中第一至六位编号,例种:763702 桂:56323 花:341620祝:723718 贺:293762 你:161750合:160137 欢:261716 树:562635民:330108 族:211657 麒:410915麟:410702 醇:812701(5)词语文献快速码:(1)双字词:取第一字起、末部首(如首字为部首字,则改为第二字起笔部首)、第二字末部首,例:海洋:710487 国家:230122 乙炔:086816人民:163308 幸福:321075 辛勤:781029(2)三字以上词:取第一个起笔部首、第二字收笔部首、末字收笔部首。例:
地球仪:370414 金字塔:960137大世界:571709 不夜城:120504游乐场:715009统一战线:480104 胸有成竹:656583成竹在胸:118324 中华人民共和国:371001诺贝尔奖金:936296 马列主义:495814马克思列宁主义:4910143.调整部首、去重码与功能键(1)调整部首:部首是可以调整的。为了统一“全息Ⅰ码”与“全息Ⅱ码”,才统一用“100部首”的名称。“Ⅰ码”与“Ⅱ码”也可不统一,“Ⅰ码”可增减部首,甚至可用《康熙字典》的214个部首,也可用王竹溪的56个新部首,或更少的部首,但用100个左右为宜。“Ⅱ码”可减少到100个以下,保持二位数,反之,亦可对部首字和数百个常用偏旁字编成三位数,取二个部首、偏旁字编成6位数码,也可取三个部首、偏旁字编成9位数码。只要查码方便,有足够的离散度就行。
如“三”为071,“刘”为271,那么“浏”为071271(六位码)或071***271(九位码)。其余类推。
(2)去重码:重码率再低,总还有个别重码字或重码词。“Ⅰ码”可用击0键并移动其位置或击1、2、3……8、9、0数字键去重码。“Ⅱ码”可用*键去重码,去重码的让码以词频为序。
(3)功能键:提示,改错,分简繁体、正字、异体、讹体,中西文夹排等,都可使用多余的键。
综上所述,本发明的优点还在于易推广、用途多。至少可以有下列几项可供开发应用:1.中文电脑打字、编辑、排版;
2.电报码与电传码统一于拉丁字明码,并且比西文简约,可由机器自动译码为中文,可大大节约人工、费用;
3.全国邮政编码统一,人人可自编,且使地址的字母化略写与邮政编码相一致。全国几百个省、市、几千个县基本上不重码。省、自治区、市、县、乡、镇等行政区划单位:北京:SBTX 上海:BHSD 天津:ERSG广州:AODS 广东:AOHX 广西:AOXH云南:ESSS 浙江:SDSG 江西:SGXH江苏:SGCB 福建:QTJZ 湖北:SYSB湖南:SYSS 青海:FYSD 河南:SKSS海南:SDSS 新疆:LDGH 西藏:XHCD贵州:KBDS 宁夏:DDDX 台湾:SKSG四川:MHPS 辽宁:LZDD 吉林:SKMM河北:SGSB 山东:SSHX 山西:SSXH安徽:DNEW 黑龙江:LHSS 内蒙古:MRCS4.中外文机器助译。中国人学外语、外国人学汉语,主要困难不在语法,而在于记大量词汇。全息码使汉字、汉语词汇化为四个拉丁字母,这就比贮存西文容易。有了全息码,中国人与外国人只要化很少的时间学会语法、字母拼音法则、编码方法,就能借助机器的词汇对译来进行对话交流。一个人要掌握几门外语是很容易的。翻译专业工作者也可省去大量查辞典的功夫。
5.古汉语与白话文机器助译。原理同上。
6.速记。用全息码速记统一、规范、迅速,对速记整理、翻译也可借助机器,省去大量时间。
7.缩写。用全息码可用1.33个拉丁字母代替一个方块汉字,可大量节约篇幅时间。
8.图书编目、辞书索引用全息码,规范、简便,不重码,能消除难检字。
9.速抄、缩录。原理同速记、缩写。
10.医药自我咨询,及农村牧副渔工商文军政各行各业管理咨询。例如输入①感冒②年龄③性别④肪膊⑤体温⑥痰的浓与清⑦有否咳嗽等信息,即可输出名医名方。全息码可作各种咨询汉字卡。
以上10项都同本发明使繁难的方块汉字变成超过任何一种西文的全息码有关。本发明发掘了汉字内在的美质,使汉字变成科学、规范、精炼、优美的集约化的编码,从而成为东西方文明大交流的一座宏伟的桥梁。
‘柒’ 谁能给我写个简单的汉字Base64解码代码并且告诉我原理。
这是编解码的代码,确认有效。
static size_t _base64Decode(unsigned char* pszNormal, const unsigned char* pczBase64, int nSize)
{
ASSERT(nSize > ZERO);
unsigned char* pszBase64Copy = NULL;
if( pczBase64 == pszNormal )
{
pszBase64Copy = new unsigned char[nSize]; ASSERT(pszBase64Copy);
::memcpy(pszBase64Copy, pczBase64, nSize);
}
size_t nsize = 0;
unsigned char* pucOrig = (NULL == pszBase64Copy) ? (unsigned char*)pczBase64 : pszBase64Copy;
unsigned char* pucDest = pszNormal;
for(int nNow = 0; nNow < nSize - 4; nNow += 4)
{
unsigned long ul = *(unsigned long*)pucOrig;
register int b0 = (_getBase64Index((char)B0(ul))<<2|_getBase64Index((char)B1(ul))<<2>>6)&MAX_BYTE;
register int b1 = (_getBase64Index((char)B1(ul))<<4|_getBase64Index((char)B2(ul))<<2>>4)&MAX_BYTE;
register int b2 = (_getBase64Index((char)B2(ul))<<6|_getBase64Index((char)B3(ul))<<2>>2)&MAX_BYTE;
*((unsigned long*)pucDest) = b0|b1<<8|b2<<16;
pucOrig += 4;
pucDest += 3;
nsize += 3;
}
if( nNow < nSize )
{
int nRest = nSize - nNow;
unsigned long ul = 0;
for(int j = 0; j < nRest; ++j){
*(((unsigned char*)&ul)+j) = *pucOrig++;
}
register int b0 = (_getBase64Index((char)B0(ul))<<2|_getBase64Index((char)B1(ul))<<2>>6)&MAX_BYTE;
*pucDest++ = b0;
nsize++;
if( (_EQ_ != B1(ul)) && (_EQ_ != B2(ul)) )
{
register int b1 = (_getBase64Index((char)B1(ul))<<4|_getBase64Index((char)B2(ul))<<2>>4)&MAX_BYTE;
*pucDest++ = b1;
nsize++;
}
if( (_EQ_ != B2(ul)) && (_EQ_ != B3(ul)) )
{
register int b2 = (_getBase64Index((char)B2(ul))<<6|_getBase64Index((char)B3(ul))<<2>>2)&MAX_BYTE;
*pucDest++ = b2;
nsize++;
}
}
*pucDest = _EOS_;
if( pszBase64Copy )
{
delete[] pszBase64Copy;
pszBase64Copy = NULL;
}
return nsize;
}
static int _base64Encode(unsigned char* pszBase64, const unsigned char* pczNormal, int nSize)
{
ASSERT(nSize > ZERO);
unsigned char* pszNormalCopy = NULL;
if( pczNormal == pszBase64 )
{
pszNormalCopy = new unsigned char[nSize];
::memcpy(pszNormalCopy, pczNormal, nSize);
}
size_t nsize = 0;
unsigned char* pucOrig = (NULL == pszNormalCopy) ? (unsigned char*)pczNormal : pszNormalCopy;
unsigned char* puc64 = pszBase64;
for(int nNow = 0; nNow < nSize - 3; nNow += 3)
{
unsigned long ul = *(unsigned long*)pucOrig;
register int b0 = _getBase64Char((B0(ul) >> 2) & 0x3F);
register int b1 = _getBase64Char((B0(ul) << 6 >> 2 | B1(ul) >> 4) & 0x3F);
register int b2 = _getBase64Char((B1(ul) << 4 >> 2 | B2(ul) >> 6) & 0x3F);
register int b3 = _getBase64Char((B2(ul) << 2 >> 2) & 0x3F);
*((unsigned long*)puc64) = b0 | b1 << 8 | b2 << 16 | b3 << 24;
nsize += 4;
puc64 += 4;
pucOrig += 3;
}
if( nNow < nSize )
{
int nRest = nSize - nNow;
unsigned long ul = 0;
for(int j = 0; j < nRest; ++j){
*(((unsigned char*)&ul) + j) = *pucOrig++;
}
puc64[0] = _getBase64Char((B0(ul) >> 2) & 0x3F);
puc64[1] = _getBase64Char((B0(ul) << 6 >> 2 | B1(ul) >> 4) & 0x3F);
puc64[2] = (nRest > 1)?_getBase64Char((B1(ul) << 4 >> 2 | B2(ul) >> 6) & 0x3F) : _EQ_;
puc64[3] = (nRest > 2)?_getBase64Char((B2(ul) << 2 >> 2) & 0x3F) : _EQ_;
puc64 += 4;
nsize += 4;
}
*puc64 = _EOS_;
if( pszNormalCopy )
{
delete[] pszNormalCopy;
pszNormalCopy = NULL;
}
return nsize;
}
在网络传输的时候,需要使用多字节编码,才能得到有效的汉字。
也就是说,当你传输一个汉字的时候,应该先把它用多字节编码,然后在接收端再把它还原为之前的编码。
另外,能否编辑中文,与操作系统的字符集有关,如果是中文操作系统的话,默认的是中文字符集,这是可以修改的,如果你修改成其他西文字符集的话,对汉字的编辑可能就会出现乱码。
‘捌’ 译码的编码体系
我们日常接触到的文件分ASCII和Binary两种。ASCII是“美国信息交换标准编码”的英文字头缩写,可称之为“美标”。美标规定了用从0到127的128个数字来代表信息的规范编码,其中包括33个控制码,一个空格码,和94个形象码。形象码中包括了英文大小写字母,阿拉伯数字,标点符号等。我们平时阅读的英文电脑文本,就是以形象码的方式传递和存储的。美标是国际上大部分电脑的通用编码。
然而电脑中的一个字符大都是用一个八位数的二进制数字表示。这样每一字符便可能有256个不同的数值。由于美标只规定了128个编码,剩下的另外128个数码没有规范,各家用法不一。另外美标中的33个控制码,各厂家用法也不尽一致。这样我们在不同电脑间交换文件的时候,就有必要区分两类不同的文件。第一类文件中每一个字都是美标形象码或空格码。这类文件称为“美标文本文件”(ASCII Text Files),或略为“文本文件”,通常可在不同电脑系统间直接交换。第二类文件,也就是含有控制码或非美标码的文件,通常不能在不同电脑系统间直接交换。这类文件有一个通称,叫“二进制文件”(Binary Files)。 “国标”是“中华人民共和国国家标准信息交换用汉字编码”的简称。国标表(基本表)把七千余汉字、以及标点符号、外文字母等,排成一个94行、94列的方阵。方阵中每一横行叫一个“区”,每个区有九十四个“位”。一个汉字在方阵中的坐标,称为该字的“区位码”。例如“中”字在方阵中处于第54区第48位,它的区位码就是5448。
其实94这个数字。它是美标中形象码的总数。国标表沿用这个数字,本意大概是要用两个美标形象符代表一个汉字。由于美标形象符的编码是从33到126,汉字区、位码如果各加上32,就会与美标形象码的范围重合。如上例“中”字区、位码加上32后,得86,80。这两个数字的十六进制放在一起得5650,称为该字的“国标码”,而与其相对应的两个美标符号,VP,也就是“中”字的“国标符”了。
这样就产生了一个如何区分国标符与美标符的问题。在一个中英文混用的文件里,“VP”到底代表“中”字呢,还是代表某个英文字头缩写?电子工业部第六研究所开发CCDOS的时候,使用了一个简便的解决方案:把国标码的两个数字各加上128,上升到非美标码的位置。(改变后的国标码,习惯上仍叫“国标”。)
这个方案固然解决了原来的问题,可是新的问题随之产生。中文文件成了“二进制文件”,既不能可靠地在不同电脑系统间交换,也不与市场上大部分以美标符号为设计对象的软件兼容。
为了区分以上两种“国标”,我们把原与美标形象码重合的国标码称为“纯国标” ,而把CCDOS加上128的国标码称为“准国标”。 GBK码是GB码的扩展字符编码,对多达2万多的简繁汉字进行了编码,简体版的Win95和Win98都是使用GBK作系统内码。
GB是国标,K是汉字“扩展”的汉语拼音第一个字母。其实,GBK是又一个汉字编码标准,全称《汉字内码扩展规范》(Chinese Internatial Code Specification),1995年颁布。
从实际运用来看,微软自win95简体中文版开始,系统就采用GBK代码,它包括了TrueType宋体、黑体两种GBK字库(北京中易电子公司提供),可以用于显示和打印,并提供了四种GBK汉字的输入法。此外,浏览器IE4.0简体、繁体中文版内部提供了一个GBK-BIG5代码双向转换功能。此外,微软公司为IE提供的语言包中,简体中文支持(Simplified Chinese Language Support Kit)的两种字库宋体、黑体,也是GBK汉字(珠海四通电脑排版系统开发公司提供)。其他一些中文字库生产厂商,也开始提供TrueType或PostScriptGBK字库。
许多外挂式的中文平台,如南极星、四通利方(Richwin)等,提供GBK码的支持,包括字库、输入法和GBK与其他中文代码的转化器。
互联网方面,许多网站网页使用GBK代码。
但是多数搜索引擎都不能很好的支持GBK汉字搜索,大陆地区的搜索引擎有些能不完善的支持GBK汉字检索。
GBK向下与GB-2312编码兼容,向上支持ISO 10646.1国际标准,是前者向后者过渡的一个承启标准。
GBK规范收录了ISO 10646.1中的全部CJK汉字和符号,并有所补充。具体包括:GB 2312中的全部汉字、非汉字符号;GB 13000.1中的其他CJK汉字。以上合计20902个GB化汉字;《简化总表》中未收入GB 13000.1的52个汉字;《康熙字典》以及《辞海》中未被收入GB 13000.1的28个部首及重要构件;13个汉字结构符;BIG-5中未被GB 2312收入、但存在于GB 13000.1的139个图形符号;GB 12345增补的6个拼音符号;GB 12345增补的19个竖排图形符号(GB 12345较GB 2312增补竖排标点符号29个,其中10个未被GB 13000.1收入,故GBK亦不收);从GB 13000.1的CJK兼容区挑选出的21个汉字;GB 13000.1收入的31个IBM OS/2专用符号。GBK亦采用双字节表示,总体编码范围为0x8140~0xFEFE之间,首字节在0x81~0xFE之间,尾字节在0x40~0xFE之间,剔除0x××7F一条线,总计23940个码位,共收入21886个汉字和图形符号,其中汉字(包括部首和构件)21003个,图形符号883个。 1993年,国际标准ISO10646 定义了通用字符集(Universal Character Set,UCS)。UCS 是所有其他字符集标准的一个超集。它保证与其他字符集是双向兼容的。就是说,如果你将任何文本字符串翻译到 UCS格式,然后再翻译回原编码,你不会丢失任何信息。
UCS 包含了用于表达所有已知语言的字符。不仅包括拉丁语,希腊语,斯拉夫语,希伯来语,阿拉伯语,亚美尼亚语和乔治亚语的描述, 还包括中文,日文和韩文这样的象形文字,以及平假名,片假名,孟加拉语,旁遮普语果鲁穆奇字符(Gurmukhi), 泰米尔语, 印.埃纳德语(Kannada),Malayalam,泰国语,老挝语, 汉语拼音(Bopomofo), Hangul,Devangari,Gujarati, Oriya,Telugu 以及其它语种。对于还没有加入的语言,由于正在研究怎样在计算机中最好地编码它们, 因而最终它们都将被加入。这些语言包括Tibetian,高棉语,Runic(古代北欧文字),埃塞俄比亚语, 其他象形文字,以及各种各样的印-欧语系的语言,还包括挑选出来的艺术语言比如 Tengwar,Cirth 和 克林贡语(Klingon)。UCS 还包括大量的图形的,印刷用的,数学用的和科学用的符号,包括所有由 TeX,Postscript, MS-DOS,MS-Windows, Macintosh, OCR 字体, 以及许多其他字处理和出版系统提供的字符。
ISO 10646 定义了一个 31 位的字符集。然而,在这巨大的编码空间中,迄今为止只分配了前 65534 个码位 (0x0000 到 0xFFFD)。这个UCS的16位子集称为基本多语言面 (Basic Multilingual Plane,BMP)。将被编码在16位BMP以外的字符都属于非常特殊的字符(比如象形文字),且只有专家在历史和科学领域里才会用到它们。按当前的计划,将来也许再也不会有字符被分配到从0x000000到0x10FFFF这个覆盖了超过100万个潜在的未来字符的 21 位的编码空间以外去了。ISO 10646-1标准第一次发表于1993年,定义了字符集与 BMP 中内容的架构。定义 BMP以外的字符编码的第二部分 ISO 10646-2 正在准备中,但也许要过好几年才能完成。新的字符仍源源不断地加入到 BMP 中,但已经存在的字符是稳定的且不会再改变了。
UCS 不仅给每个字符分配一个代码,而且赋予了一个正式的名字。表示一个 UCS 或 Unicode 值的十六进制数,通常在前面加上 “U+”,就象U+0041 代表字符“拉丁大写字母A”。UCS字符U+0000到U+007F 与 US-ASCII(ISO 646) 是一致的, U+0000 到 U+00FF 与 ISO 8859-1(Latin-1) 也是一致的。从 U+E000 到 U+F8FF,已经BMP 以外的大范围的编码是为私用保留的。
1993年,ISO10646中定义的USC-4 (Universal Character Set) ,使用了4 个字节的宽度以容纳足够多的相当可观的空间,但是这个过于肥胖的字符标准在当时乃至现在都有其不现实的一面,就是会过分侵占存储空间并影响信息传输的效率。与此同时,Unicode 组织于约 10 年前以 Universal,Unique和Uniform 为主旨也开始开发一个16位字符标准, 为避免两种16位编码的竞争,1992年两家组织开始协商,以期折衷寻找共同点,这就是今天的 UCS-2 (BMP,Basic Multilingual Plane,16bit) 和Unicode,但它们仍然是不同的方案。 关于Unicode我们需要追溯一下它产生的渊源。
当计算机普及到东亚时,遇到了使用表意字符而非字母语言的中、日、韩等国家。在这些国家使用的语言中常用字符多达几千个,而原来字符采用的是单字节编码,一张代码页中最多容纳的字符只有28=256个,对于使用表意字符的语言是在无能为力。既然一个字节不够,自然人们就采用两个字节,所有出现了使用双字节编码的字符集(DBCS)。不过双字节字符集中虽然表意字符使用了两个字节编码,但其中的ASCII码和日文片假名等仍用单字节表示,如此一来给程序员带来了不小的麻烦,因为每当设计到DBCS字符串的处理时,总是要判断当中的一个字节到底表示的是一个字符还是半个字符,如果是半个字符,那是前一半还是后一半?由此可见DBCS并不是一种非常好的解决方案。
人们在不断寻找这更好的字符编码方案,最后的结果就是Unicode诞生了。Unicode其实就是宽字节字符集,它对每个字符都固定使用两个字节即16位表示,于是当处理字符时,不必担心只处理半个字符。
目前,Unicode在网络、Windows系统和很多大型软件中得到应用。
GB编码标准中,比较常用的是GB2312和GBK两种,GB2312是GBK的一个子集,GB2312编码范围是 0xA1A1 - 0xFEFE ,如果纯粹的 GB2312编码,处理起来是什分简单的,但处理GBK字符集时有些小的提示,先说说GBK编码的标准吧:
GBK 采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。
‘玖’ 请问一个关于URL中汉字编码解码的问题
URLDecoder.decode(url, "utf-8");
url是你的地址,
解码完之后,接收一下。应该可以了。
编码之后,记得解码。
import java.net.URLDecoder;
一个解码,
import java.net.URLEncoder;
一个编码。
如果遇到无法解码,在页面上将%替换成!
URLEncoder.encode(input,"UTF-8").replaceAll("%","!"),
然后在后台,再转换回来,String的replaceAll("!","%")。
‘拾’ 电报通信的汉字电报码
中国汉字的数量很大,故采用两次编码,即每个汉字由一组(4个)数字表示(称为汉字的电报码),再按数字的莫尔斯电码或5单位电码发送和接收。收下的成组数字需要译成汉字,这种译码工作可用中文译码机来完成。