[发明专利]适用于GB18030的URL中文参数压缩算法有效
申请号: | 201210291922.3 | 申请日: | 2012-08-16 |
公开(公告)号: | CN102801429A | 公开(公告)日: | 2012-11-28 |
发明(设计)人: | 吴英杰;傅仰耿;钟思志;林秋霞;潘晓晓 | 申请(专利权)人: | 福州大学 |
主分类号: | H03M7/30 | 分类号: | H03M7/30;G06F17/22 |
代理公司: | 福州元创专利商标代理有限公司 35100 | 代理人: | 蔡学俊 |
地址: | 350108 福建省福州市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 适用于 gb18030 url 中文 参数 压缩 算法 | ||
技术领域
本发明涉及URL编码技术领域,特别是一种适用于GB18030的URL中文参数压缩算法。
背景技术
URL参数是追加到URL 上的一个名称/值对,RFC1738、RFC3986等相关文档规定,需要对URL参数中的中文进行编码后再传送。URL编码是对不安全字符以百分号(%)用十六进制进行编码,只有US-ASCII字符集的一个子集的字符才能允许出现在URL中。
Web编程语言如JavaScript、PHP等提供了URL编码函数如escape、encodeURI、urlencode等,但这些函数对URL的中文参数编码后长度过长。浏览器和服务器对URL的长度有一定的限制,过长的URL不仅可能导致服务器产生拒绝请求服务的错误,在海量用户环境下还会影响请求的提交和服务器响应。
发明内容
本发明的目的在于提供一种适用于GB18030的URL中文参数压缩算法,该算法压缩效果好,有利于减小URL的中文参数的编码长度。
本发明采用的技术方案是:一种适用于GB18030的URL中文参数压缩算法,当Web页面采用GB18030-2000或GB18030-2005编码时,对于映射到Unicode的编码值在U+4E00-U+9FA5范围中的CJK统一字符以及编码值在U+3400-U+4DB5范围中的CJK扩展A字符,按如下步骤进行中文编码:
步骤1.1:将16位的二进制Unicode值左移两位成18位,然后表示成长度分别为6位、6位、6位的三块;
步骤1.2:当第二块的二进制值为111110或111111时,将第二块前五位的任意一位与第三块的末位交换;
步骤1.3:将经过步骤1.1、1.2处理的汉字二进制编码进行Base64编码,实现URL中文参数的压缩;
对于映射到Unicode的编码值在U+ F92C-U+ FA29范围中的CJK兼容字符,按如下步骤进行中文编码:
步骤2.1:将16位的汉字Unicode值左移两位成18位,然后表示成长度分别为6位、6位、6位的三块;
步骤2.2:将第一块的最后两位交换;
步骤2.3:将经过步骤2.1、2.2处理的汉字二进制编码进行Base64编码,实现URL中文参数的压缩;
对于映射到Unicode的编码值在U+20000-U+2A6D6范围中的CJK扩展B字符,按如下步骤进行中文编码:
步骤3.1:将20位的汉字Unicode值的最高两位忽略,然后表示成长度分别为6位、6位、6位的三块;
步骤3.2:定义当一个块的二进制值为111110或111111时就称该块特殊,并在二进制值为101000-111100范围中任取三个值X、Y、Z,分别用以表示第二块特殊、第三块特殊、第二块和第三块均特殊;
当第二块和第三块均不特殊时,将第一块的最高位置为0;
当第二块或第三块特殊时,将特殊块的后两位与二进制10作异或运算,并将第一块的后四位存储在特殊块的前四位,然后将对应的X或Y值填入第一块;
当第二块和第三块均特殊时,将两个特殊块的后两位分别与二进制10作异或运算,并将第一块的后四位存储在其中一个特殊块的前四位,然后将对应的Z值填入第一块;
步骤3.3:将经过步骤3.1、3.2处理的汉字二进制编码进行Base64编码,实现URL中文参数的压缩。
本发明的有益效果是针对URL中文参数的特点,结合Base64设计并实现了一种改良的适用于GB18030-2000和GB18030-2005的URL中文参数压缩算法。该算法压缩效果好,适用范围广。该算法不仅一定程度上避免了URL长度超过浏览器/服务器的限制,而且显著减少服务器不必要的流量,并缩短服务器的响应时间,提升在网络拥塞情况下用户的浏览体验。
附图说明
图1是本发明算法的工作流程图。
图2是Base64算法的编码过程图。
图3是本发明算法对CJK统一字符或CJK扩展A字符编码时,在Unicode值的第二块出现62或63时的编码过程图。
图4是CP936中映射到Unicode的编码值不在U+4E00~U+9FA5范围中的21个CJK兼容字符列表。
图5是本发明算法对CJK兼容字符编码时,在Unicode值的第一块出现62时的编码过程图。
图6是本发明算法对第一块的二进制值的分配表。
图7是本发明算法对CJK扩展B字符编码时,在第二块特殊时的编码过程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州大学,未经福州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210291922.3/2.html,转载请声明来源钻瓜专利网。