把URL编码对应国标汉字的文档做好了~

从昨天看调IIS支持CGI,调到晚上,终于能写CGI了,看了一下午~

今天看传递URL编码的译码问题,搜到的全是使用VB的Chr函数,一直在用C++写,遗憾的是好像C中并没有译码的函数。

于是决定自己写个,从网上搜到的汉字编码文件(html格式)的,自己写了个字符串处理的程序和转变为16进制映射表的函数,总算把URL的编码写好了,映射到MAP中查询;

所有的汉字和符号所在的区分为以下四个组:
    (1)01区到15区。图形符号区,其中01区到09区为标准符号区,10区到15区为
自定义符号区。
(2)16区到55区。一级常用汉字区,包括了3755个一统汉字。这40个区中的汉字
是按汉语拼音排序的,同音字按笔划顺序排序。其中55区的90一94位未定义汉字。
    (3)56区到87区。二级汉字区,包括了3008个二级汉字,按部首排序。
    (4)88区到94区。自定义汉字区。
    第10区到第15区的自定义符号区和第88区到第94区的自定义汉字区可由用户自行
  定义国标码中未定义的符号和汉字。

汉字“啊”的区位码是1601,也就是在94X94的第16行,第1列,而在ULR的编码为%B0%A1,也就是B0A1,怎么转化成的这个?

16,01转化为16进制就是10,01,而ASCII表本身的可表示的命令区是00-1F,为了不和这些冲突,每个汉字的编码加上20,20H,拿“啊”做例子,也就是到了3021H,这也是国标码;

但是现在的中文编码普遍采用变形国标码,即国标码的变形:用的最多的变形方法是把国标码的第15位和第7位均置成1,由于国标码中第15位和第7位都是0,所以这种变形方法实际上就是国标码加上8080H。

拿“啊”做例子,也就是3021H + 8080H = B0A1H

这个B0A1就是这么来的。

下的码表是区位码,为了效率要直接写成URL编码形式对应汉字,即原来的是1601-啊,现在要改成B0A1-啊

总算写好了,写好的命名为fontDic.font文件,含有国标的所有汉字,大小为78K~~~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值