[发明专利]适用于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字符编码时,在第二块特殊时的编码过程图。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州大学,未经福州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210291922.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top